Python单元测试框架(附例子)
什么是单元测试?
单元测试在[Python中做是为了在应用程序的开发阶段的早期识别错误时的错误不太经常和修复成本更低。
单元测试是用Python设计的脚本化代码级测试,用于验证功能的小“单元”。单元测试是一种基于测试夹具的面向对象框架。
Python单元测试主要涉及测试特定模块而不访问任何相关代码。开发人员可以使用存根和模拟等技术将代码分成“单元”,并对各个部分进行单元级测试。
-
**测试驱动开发TDD:**单元测试应该与Python一起完成,并且开发人员使用测试驱动开发方法。在TDD方法中,您首先设计Python单元测试,然后才继续编写将实现此功能的代码。
-
存根和模拟:它们是模拟正在测试的伪方法的两种主要技术。甲存根用于填充在能正常运行所需的单元测试一些依赖性。一个模拟的另一方面是它运行,我们把断言测试一个假的对象。
两种方法的意图相同,以消除测试类或函数的所有依赖性。
为了简化单元测试过程并提高项目质量,建议使用Python单元测试框架。单元测试框架包括
-
PyUnit: PyUnit支持固件,测试用例,测试套件和测试运行器,用于自动测试代码。在PyUnit中,您可以将测试用例组织到具有相同夹具的套件中
-
鼻子: Nose的内置插件可以帮助您进行输出捕获,代码覆盖,doctests等。鼻子语法非常简单,减少了编写测试的障碍。它扩展了Python单元测试,使测试更容易。
-
Doctest: Doctest测试脚本在docstring中以文件底部的小函数进行。Doctest允许您通过运行文档中包含的示例并验证它们是否返回了预期结果来测试代码。doctest的用例不太详细,也没有特殊情况。它们可用作模块及其组件的主要用例的表达文档。
Pyunit是JUnit的Python端口。作为Pyunit的一部分,在unittest模块中有五个关键类。
- TestCase类:TestCase类承载测试例程并提供钩子,用于制作每个例程并在此后进行清理
- TestSuite类:它作为一个集合容器,它可以拥有多个测试用例对象和多个testsuites对象
- TestLoader类:此类加载本地或外部文件定义的测试用例和套件。它会发出一个具有这些套件和案例的测试对象
- TextTestRunner类:要运行测试,它需要一个标准平台来执行测试
- TestResults类:它为测试结果提供标准容器
单元测试提供了一个基类,测试用例,可用于创建新的测试用例。对于设计测试用例,使用的是三组方法
unittest.TestCase生成
setUp()
teardown()
skipTest(aMesg:string)
fail(aMesg:string)
id():string
shortDescription():string
在第一组中是前后测试钩。setup()方法在每个测试例程之前开始,例程之后的teardown()。
第二组方法控制测试执行。两种方法都将消息字符串作为输入,并且都取消正在进行的测试。但是skiptest()方法会中止当前测试,而fail()方法会完全失败。
最后或第三种方法有助于确定测试。方法id()返回一个字符串,该字符串由testcase对象和测试例程的名称组成。方法shortDescription()在每个测试例程的启动时返回docstr注释。
- 使用Python单元测试的优点
- 它可以帮助您在开发周期的早期检测错误
- 它可以帮助您编写更好的程序
- 它可以与其他测试方法和工具轻松同步
- 它会有更少的错误
- 将来修改起来更容易,后果更容易
每次阅读都有收获,你呢?