19.unittest原理

Posted yangyangchunchun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了19.unittest原理相关的知识,希望对你有一定的参考价值。

单元测试
单元测试(unit testing)是指对软件中的最小可测试单元进行检查和验证。对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语言中单元指一个函数,Java里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等。总的来说,单元就是人为规定的最小的
被测功能模块。
单元测试框架

 技术图片

 

 

 

TestCase: 测试用例类

此类的一个实例,就是一个测试用例。
一个完整的测试用例包括: 包括测试前准备环境的搭建(setUp),执行测试代码(run),以及测试后环境的还原(tearDown)。

TestSuite:测试套件类

对多个测试用例的整合到一起,打包进行测试,就用到了TestSuite
实例化一个TestSuite对象,可以添加上多个测试用例。

TestLoader: 测试用例加载类

加载TestCase实例(即测试用例)到TestSuite实例中,
所以,这个类里面有很多加载的方法,例如:几个loadTestsFrom__()方法

TextTestRunner:测试用例运行类

实例化出此类的一个对象,然后把TestSuite实例做为参与传进去,就可以运行测试了

TextTestResult: 测试用例结果类

TextTestRunner的运行结果保存在TextTestResult中,
包括运行了多少测试用例,成功了多少,失败了多少等信息

fixture:

对一个测试用例环境的搭建和销毁,是一个fixture,通过覆盖TestCase的setUp()和tearDown()方法来实现。
(1)比如说在这个测试用例中需要访问数据库,那么可以在setUp()中建立数据库连接以及进行一些初始化,在tearDown()中清除在数据库中产生的数据,然后关闭连接。注意tearDown的过程很重要,要为以后的TestCase留下一个干净的环境。
(2)关于fixture,还有一个专门的库函数叫做fixtures,功能更加强大,以后会介绍到。

 

unittest运行原理

 

技术图片

 

技术图片

 

总结:
(1)最终主程序先执行哪个类、是按照这个类的名字字母、以及数据排序的
(2)最终,先运行哪个方法,是按照某类中,方法的名字、数字排序的
(3)主程序中先加载哪个方法,或者后加载哪个方法,在unittests运行的模式下,没有任何作用
(4)只有当使用普通模式下运行这个程序,才会按照顺序去执行。 














以上是关于19.unittest原理的主要内容,如果未能解决你的问题,请参考以下文章

数据库系统原理 片段翻译

标签菜单android - 不正确的调用片段

如何在不单击的情况下显示片段

二级域名原理以及程序代码

深入理解PHP原理之Opcodes

HashMap原理:哈希函数的设计