一、单元测试框架

1.单元测试定义

1.1什么是单元测试?

还记不记得我们软件测试学习的时候,按照定义:单元测试就是对单个模块或者是单个类或者是单个函数进行测试。
一般是开发做的,按照阶段来分,一般就是单元测试,集成测试,系统测试,验收测试。

1.2为什么要做单元测试?

1)单元测试之后,才是集成测试,单个单个的功能模块测试通过之后,才能把单个功能模块集成起来做集成测试,为了从底层发现bug,减少合成后出现的问题。
2)越早发现bug越好,这样可以早点发现问题,不然问题累计到后面,如果做错了就要推倒重来,对于时间和经费来说,是非常浪费的!
对于我们测试来说:我们就单元测试是为了执行测试用例!
输入测试数据—>输出测试结果

1.3.unittest框架以及原理介绍

1.3.1 unittest框架最核心的四个概念:

一、单元测试框架
TestCase: 一个testcase的实例就是一个测试用例
TestSuite: 多个测试用例集合在一起。TestLoader:用来加载TestCase到TestSuite中的
TextTestRunner: 用来执行测试用例的
fixTure: 测试用例环境的搭建和销毁。测试前准备环境的搭建(setUp),执行测试代码(run),以及测试后环境的还原(tearDown)。
☆备注:以上4点理论知识将于下面的实践结合起来进行讲解

2.单元测试案例

一、单元测试框架

  • 设计测试用例上面的登陆校验功能是否正常?
    一、单元测试框架
    一、单元测试框架

3.编写测试用例

3.1TestCase类编写测试用例

针对上图的测试用例设计太复杂,我们使用unittest框架来进行设计,如下所示:
★划重点 编写测试用例类的步骤
①导入unittest模块,被测文件或者其中的类
②定义测试用例类 ,必须继承于unittest.TestCase
③重写setUp和tearDown方法(如果有初始条件或者结束条件)
④定义测试函数(创建测试用例):必须以test开头的函数方法才是一个测试用例
⑤创建测试用例三部曲:
a.第一步:准备测试用例数据、入参、预期结果
b.第二步:执行功能函数,获取实际结果
c.第三步:比对预期结果和实际结果
⑥调用unittest.main()方法运行测试用例

一、单元测试框架

3.2用例的执行顺序

执行顺序是按照ASCII编码来的

4.测试集合

4.1 TestSuite & TestLoader的使用

TestSuite:测试集,把所有的用例都存进来,常用的方法如下:
unittest.TestSuite()
方法一:addTest() 添加一个测试用例
unittest.TestLoader()
方法二:unittest.TestLoader.loadTestsFromModule(模块名)不需要加引号(注意要导入模块)
方法三:unittest.TestLoader.loadTestsFromTestCase(测试类名)不需要加引号

4.2 总结和疑问

一、单元测试框架
一、单元测试框架

5.unittest断言介绍

断言方法
一、单元测试框架

6.执行用例&生成报告

6.1 TextTestRunner的用法

测试用例已经集合完毕,如何来执行测试用例?
需要用到TextTestRunner,执行测试集合,用到的是TextTestRunner(),用run方法。
一、单元测试框架

6.2 测试结果怎么看?

. 代表测试用例通过 一个点代表一个测试用例
E 代表测试用例执行出错了
F 代表测试用例不通过

6.3.生成测试报告

下载HTMLTestRunner的地址:http://tungwaiyip.info/software/HTMLTestRunner.html
下载好的HTMLTestRunner文件放在python安装目录下的Lib文件夹下 然后直接导入就可以使用
一、单元测试框架

生成的HTML报告如下图所示:
一、单元测试框架

6.3 断言捕获异常

一、单元测试框架
一、单元测试框架