1、unittest简介
官网文档https://docs.python.org/3/library/unittest.html 点此处跳转至官网
1、单元测试框架是受到 JUnit 的启发,与其他语言中的主流单元测试框架有着相似的风格。它支持测试自动化,配置共享和关机代码测试。支持将测试样例聚合到测试集中,并将测试与报告框架独立。
2、熟悉java的应该都清楚常见的单元测试框架Junit和TestNG,对应python中单元测试框架为unittest和pytest,等后面有空,再分享pytest框架。
3、unittest可以用来做单元测试,接口测试、UI测试、也可以完成自动化测试。
2、unittest组成
2.1 test fixture
测试fixture表示执行一个或多个测试以及任何相关的清除操作所需的准备工作。例如,这可能涉及创建临时或代理数据库、目录或启动服务器进程。
2.2 test case
测试用例是单独的测试单元。它检查特定输入集合的特定响应。unittest提供了一个基类TestCase,可以用来创建新的测试用例。
2.3 test suite
测试套件是测试用例、测试套件或两者的集合。它用于聚合应该一起执行的测试。
2.4 test runner
测试运行程序是编排测试执行并向用户提供结果的组件。运行程序可以使用图形界面、文本界面或返回一个特殊值来指示执行测试的结果。
3、unittest原理
简要分为这几步:
- 1、编写TestCase,方法必须已test_开头;
- 2、TestLoader将TestCase加载到TestSuite中;
- 3、由TextTestRunner来运行测试套件(TestSuite);
- 4、将运行的结果保存至TextTestResult中;
4、简单使用
可以先使用打印源码看一下
import unittest
print(help(unittest))
由上面源码看出,其实有一个简单的例子,模拟上面源码,来实操一下:
import unittest
class TestDemoOne(unittest.TestCase): # 必须要继承TestCase父类
def testMinus(self): # 测试用例以test开头
result = 100-99
expect = 1
# 断言,判断上述测试用例,实际结果result是否与expect相等
self.assertEqual(result,expect)
if __name__ == '__main__':
unittest.main()
执行结果
好了,跟着博主一起学习unittest框架,从入门到进阶之路开冲!
后续有时间会接着分享unittest相关的内容!
谢谢大家,欢迎评论区进行交流