python 单元测试_unittest(七)

一、unittest中各阶段的核心概念:TestCase, TestSuite, 断言函数, TextTestRunner,TestFixture

TestCase:所用用例的基类,软件测试中基本的测试单元,测试用例是一个完整的测试单元,可以对某一问题进行验证。

一个完整的测试流程包括:测试前环境的搭建setUp,执行测试代码(run),以及测试后环境的还原(tearDown)

TestSuite:多个测试用例的集合,可嵌套使用。

断言函数:用于对比结果(期望值/实际值)assert 断言语句和 if 分支有点类似,它用于对一个 bool 表达式进行断言,如果该 bool 表达式为 True

该程序可以继续向下执行;否则程序会引发 AssertionError 错误。

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

TestFixture:测试代码的运行环境,指测试准备前和执行后要做的工作,包括setUp和tearDown方法。

二、测试流程:写测试用例--加载用例--对比结果--执行用例并出结果--测试报告

①写一个类继承unittest.TestCase,其中包括多个以test开头的方法,每个测试方法在加载时生成一个测试实例。

②加载用例:TestSuite/ TestLoader

③对比结果:使用断言函数对比(期望值/实际值)

④执行并出结果(TextTestRunner类):运行TestSuite,并将结果保存在TextTestResult中

⑤出报告(HtmlTestReport):通过HTMLTestRunner将结果输出到HTML

注:

1)通过命令行或者unittest.main()执行时,main会调用TextTestRunner中的run来执行,或者可以直接通过TextTestRunner来执行用例

2)Runner执行时,默认将结果输出到控制台,我们可以设置其输出到文件,在文件中查看 结果,也可以通过HTMLTestRunner将结果输出到HTML

例子:

测试方法:

测试用例:

 运行结果:

 

三、其他

1)TestFixture——setUp(),tearDown()方法

setUp() 和 tearDown() 两个方法(其实是重写了TestCase的这两个方法),这两个方法在每个测试方法执行前以及执行后执行一次,setUp用来为测试准备环境,tearDown用来清理环境,已备之后的测试。

2)加载用例

方法一(TestSuite

suite=unittest.TestSuite() 
suite.addTest(TestAdd('test_add_two_zero'))

方法二(TestLoader类)

loder=unittest.TestLoader()
#suite.addTest(loder.loadTestsFromTestCase(TestSub)) #以测试类的方式加载
suite.addTest(loder.loadTestsFromModule(Day8_unittest2)) #以测试模块的方式加载

猜你喜欢

转载自www.cnblogs.com/an-ning0920/p/11725272.html