廖雪峰Python单元测试介绍

编写单元测试

引入python自带的unittest模块,定义测试类继承unittest.TestCase类,在其中定义以test_开头的方法,这样在运行测试时,这些方法会被自动调用
image.png
通过类自带的assert条件判断方法,来进行测试结果是否正确的断言判断

运行单元测试

  1. 运行unittest.main()函数
  2. 在命令行使用-m unittest直接进行单元测试

image.png

setUp&clearDown

在上述unittest.TestCase类中,还可以定义上述的两个函数,这两个函数会在其他test方法被调用运行前后都运行一次

官方文档

基本组件

  1. test fixture: 代表了测试需要的准备环境,例如创建临时、代理数据库,或者启动服务进程等
  2. test case: 一个独立的测试单元,检查测试对象对于一组特定输入的特定响应
  3. test suite: 包含一组需要一起执行的test cases和test suites
  4. test runner: 执行测试的组件,并反馈测试的结果

跳过特定测试

可以通过一些修饰语句来在指定条件下跳过特定的测试模块、测试类和测试方法(TestCase的方法)
被跳过的测试组件将不会在之前执行相应的setUp和之后执行tearDown

迭代构建测试用例

在一个测试方法中,可能需要构建一系列的迭代的测试用例,他们之间仅仅只有细微的差别,但如果单纯用循环迭代来构建,那么这一组用例将被认为是一个用例,前面的出错后后面的就不会执行
需要使用subTest来构建
image.png