淘先锋技术网

首页 1 2 3 4 5 6 7

unittest基本概念:unittest单元测试框架是专门用来进行测试的框架

  • test fixture: 代表了用例执行前的准备工作和用例执行之后的清理工作。比如在用例执行前创建临时文件和文件夹,又或者启动1个server进程等;
  • test case: 测试用例,这个相信大家都不陌生。是测试的最小单位,一般检查一组输入的响应(输出)是否符合预期。unittest模块提供了TestCase类来帮助我们创建测试用例;
  • test suite: 经常被翻译成”测试套件”,也有人称为”测试套”,是测试用例或测试套件的集合,一般用来把需要一起执行的用例组合到一起;
  • test runner: 用来执行测试用例并输出测试结果的组件。可以是图形界面或命令行界面;

 

  • test fixture的功能可以理解成是初始化和清理测试数据及环境
  • test case是测试用例
  • test suite是用例集合
  • test runner的作用是运行用例并返回结果

 

# 导入unittest模块
import unittest

# 继承TestCase类,TestCase类是测试用例类
class Test1(unittest.TestCase):
    def setUp(self):
        print('hello')

    def tearDown(self):
        print('bye')

    def test_001(self):
        print('001')

    def test_002(self):
        print('002')

    def test_003(self):
        print('003')

class Test2(unittest.TestCase):

    def test_001(self):
        print('201')

    def test_002(self):
        print('202')

if __name__ == '__main__':
    unittest.main()
	
# 1.unittest.main()运行时,框架自动寻找TestCase子类,并且运行
# 2.在TestCase类中,只把以test开头的方法当做测试用例,然后执行
# 3.setUp()用于初始化一些参数,在测试用例执行前自动被调用,tearDown()用于清理,在测试用例执行后被调用
  • 可以通过继承unittest.TestCase类来定义我们自己的测试用例,1个测试用例类下面可以有多个测试方法(test)或者叫做测试点
  • 测试用例中方法名以test开头的方法才是测试方法,比如上面的例子里定义了3个以test开头的方法,分别是test_001,test_002和test_003。非测试方法是不会被test runner执行的
  • setUp和tearDown这两个方法,这两个方法在测试方法执行前后会被自动调用,主要用作预处理和清理。这两个方法就是我们说的test fixture
  • 通过上面的测试代码我们可以看到,在调用uniitest.main()的时候,框架自动的调用了Test类,因为Test继承自unittest.TesetCase类,所以会被框架识别为测试用例,
  • 最后, unittest.main提供了最简单的运行用例的方式。