Python - Unittest小结

别等时光非礼了梦想. 提交于 2020-01-18 13:56:23

一、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),用于表示控制台输出报告的详细程度
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!