unittests相关内容

Posted 阿飞~HF

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了unittests相关内容相关的知识,希望对你有一定的参考价值。

一、什么是unittest

unittest是Python单元测试框架,类似于JUnit框架。

unittest中有4个重要的概念:test fixture, test case, test suite, test runner

Testcase:

一个TestCase的实例就是一个测试用例。什么是测试用例呢?就是一个完整的测试流程,包括测试前准备环境的搭建(setUp),执行测试代码 (run),以及测试后环境的还原(tearDown)。元测试(unit test)的本质也就在这里,一个测试用例是一个完整的测试单元,通过运行这个测试单元,可以对某一个问题进行验证。

TestSuite:

多个测试用例集合在一起,就是TestSuite,而且TestSuite也可以嵌套TestSuite。

Test runner:

是来执行测试用例的,其中的run(test)会执行TestSuite/TestCase中的run(result)方法。

TestLoader:

是用来加载TestCase到TestSuite中的,其中有几个loadTestsFrom__()方法,就是从各个地方寻找TestCase,创建它们的实例,然后add到TestSuite中,再返回一个TestSuite实例。

Test fixture:

对一个测试用例环境的搭建和销毁,是一个fixture,通过覆盖 TestCase的setUp()和tearDown()方法来实现。这个有什么用呢?比如说在这个测试用例中需要访问数据库,那么可以在setUp() 中建立数据库连接以及进行一些初始化,在tearDown()中清除在数据库中产生的数据,然后关闭连接。注意tearDown的过程很重要,要为以后的 TestCase留下一个干净的环境。关于fixture,还有一个专门的库函数叫做fixtures,功能更加强大。

二、unittest模块的常用方法

1.判断结果是否相同

assertEqual(a, b)     a == b

2.判断结果是否不相同

assertNotEqual(a, b)     a != b

3.判断结果是否为ture

assertTrue(x)     bool(x) is True

4.判断结果是否为false

assertFalse(x)     bool(x) is False

5.判断结果a是否为b

assertIs(a, b)     a is b

6.判断结果a是否不为b

assertIsNot(a, b)     a is not b

7.判断结果是否为空

assertIsNone(x)     x is None

8.判断结果是否不为空

assertIsNotNone(x)     x is not None

9.判断结果是否在这些数据里

assertIn(a, b)     a in b

10.判断结果是否不在这些数据里

assertNotIn(a, b)     a not in b

11.判断a是否为b的一个实例

assertIsInstance(a, b)     isinstance(a, b)

12.判断a是否不为b的一个实例

assertNotIsInstance(a, b)     not isinstance(a, b)

以上是关于unittests相关内容的主要内容,如果未能解决你的问题,请参考以下文章

python unittest 测试所有相关单元测试

unittest中的断言内容

unittest

unittest和pytest的区别

Python单元测试unittest测试框架

python批量执行脚本,使用unittest.TestSuit(); unittest.TextTestRunner().run(); addTest();unittest.defaultTestL