Python

一、Unittest

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


二、Unittest构成

  1. Test Case
  2. Test Suite
  3. Test Fixture
  4. Test Runner

image
(图片来源于网络)


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


原文地址:https://www.cnblogs.com/snailrunning/p/12205859.html