总结
1.断言使用
-
我们可以直接在测试用例里面添加unittest框架自带的断言(也就相当于判断),断言方法提供了测试结果是True还是False,所有的断言方法都有一个msg参数,如果指定msg参数的值,则将该信息作为失败的错误信息返回;
-
如果断言失败则抛出一个AssertionError,并标识该测试为失败状态;如果成功,则标识该测试为成功状态;如果异常,则当做错误来处理;
2.skip装饰器
-
我们可以使用unitest.skip装饰器跳过不需要的测试用例,
@unittest.skip(reason)
表示无条件跳过测试用例,reason是说明原因; -
@unittest.skipIf(conditition,reason)
:condititon为true时跳过测试用例; -
@unittest.skipunless(condition,reason)
:condition为False时跳过测试用例;
3.setUpClass和tearDownClass的使用
-
setup方法和teardown方法在每次执行一个测试用例时都会重新执行一遍,所以要想在整个类中只执行一遍可以用setUpClass和tearDownClass方法;
-
setUpClass
:需要添加@classmethod 装饰器,在一个类中只会在所有测试用例运行前调用一次; -
tearDownClass
:需要添加@classmethod 装饰器,在所有测试用例运行后调用一次;
4.测试用例与测试集合分开
- 首先可以先在一个文件中写好测试用例模块,然后在另一个文件中导入这个模块,再使用
unittest.TestSuite类
创建测试套件,然后使用这个类的addTest() 方法将需要被测试的测试用例添加到测试套件中,最后使用unittest.TextTestRunner类
中的run()方法来运行suite所组装的测试用例;
5.将待测试函数、测试用例、测试用例集分开
- 将待测试函数、测试用例、测试用例集分别放在不同的文件中,先在测试用例中导入待测试函数,然后使用断言判断函数是否正确,接着在测试用例集中创健测试套件,且将测试用例加入套件里面,最后运行;