欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python - Unittest小结

程序员文章站 2022-03-25 17:20:51
一、Unittest 单元测试框架,可用于自动化测试用力组织,执行,输出结果 二、Unittest构成 1. Test Case 2. Test Suite 3. Test Fixture 4. Test Runner (图片来源于网络) Test Case 一个测试用例是一个独立的测试单元。它检查 ......

一、unittest

单元测试框架,可用于自动化测试用力组织,执行,输出结果


二、unittest构成

  1. test case
  2. test suite
  3. test fixture
  4. test runner

Python - Unittest小结
(图片来源于网络)


test case

一个测试用例是一个独立的测试单元。它检查输入特定的数据时的响应。 unittest 提供一个基类: testcase ,用于新建测试用例。

一个完整的用例需要遵循3a原则

  • arrange: 初始化测试对象或者准备测试数据
  • act : 调用被测方法
  • assert: 断言(预期结果与实际结果的比较)


test suite

用于组织测试用例,测试用例的集合

—>


test fixture

test fixture 表示为了开展一项或多项测试所需要进行的准备工作,以及所有相关的清理操作。

  • 定义单个或者多个测试所需的环境准备(setup),以及环境清理(teardown)。
  • 例:连接数据库,或者创建selenium webdriver driver实例


test runner

测试运行器 是一个用于执行和输出测试结果的组件。这个运行器可能使用图形接口、文本接口,或返回一个特定的值表示运行测试的结果

demo.py

import unittest

class testdemo(unittest.testcase):

    # 初始化测试对象或者准备测试数据
    def setup(self):
        pass

    def teardown(self):
        pass

    def add(self, a, b):
        return a + b
    
    # 调用被测方法
    def test_case_one(self):
        ret = self.add(1, 2)
        # 断言
        self.assertequal(3, ret)

    def test_case_two(self):
        ret = self.add(1, 2)
        self.assertequal(1, ret)

if __name__ == '__main__':
    unittest.main(verbosity=2)


uittest使用要点:

  1. 被测方法名需以test开头,否则不被识别
  2. verbosity参数默认为1,有3个参数可选(0,1,2),用于表示控制台输出报告的详细程度


推荐阅读

uittest官网
灰蓝 python必会的单元测试框架 —— unittest
测试教程网 uittest