什么是单元测试?
使用Python进行单元测试可以在应用程序开发阶段的早期发现错误,因为这些错误的重复性较低且修复成本较低。
单元测试是用Python设计的脚本代码测试,用于验证功能的一个小“单元”,是围绕测试的面向对象的框架。
Python单元测试
Python单元测试主要是在不访问任何相关代码的情况下测试特定模块。开发人员可以使用模拟之类的技术将代码分成“单元”,并在各个部分上进行单元级测试。
测试驱动开发TDD:单元测试应与Python一起完成,为此开发人员应使用测试驱动开发方法。在TDD方法中,首先设计Python单元测试,然后才继续编写将实现此功能的代码。
Stub和Mocks:它们是模拟正在测试的两种主要技术。Stub用于填充在能正常运行所需的单元测试一些依赖。Mocks是测试一个假的对象。
这两种方法的目的都是相同的,以消除测试类或函数的所有依赖关系。
Python单元测试框架
为了简化单元测试过程并提高项目质量,建议使用Python单元测试框架。单元测试框架包括
PyUnit: PyUnit支持fixtures,测试用例,测试套件和用于自动测试代码的测试运行器。在PyUnit中,可以将测试用例组织到具有相同fixtures的套件中;
Nose:Nose的内置插件可帮助您进行输出捕获,代码覆盖率,doctests等。Nose语法非常简单,并减少了编写测试的障碍。它扩展了Python单元测试,使测试更加容易。
doctest: doctest测试脚本以docstring形式出现,在文件底部带有小功能。Doctest允许您通过运行文档中包含的示例并验证它们是否返回了预期的结果来测试代码。doctest的用例不太详细,并且不包含特殊情况。它们可用作模块及其组件的主要用例的表达性文档。
使用PyUnit进行单元测试
Pyunit是JUnit的Python端口。作为Pyunit的一部分,在unittest模块中有五个关键类。
TestCase类:TestCase类承担测试用例,并提供用于制作每个用例并随后进行清理;
TestSuite类:作为收集容器,它可以拥有多个测试用例对象和多个测试套件对象;
TestLoader类:此类加载本地定义或从外部文件定义的测试用例和套件。它发出一个拥有这些套件和案例的testsuite对象;
TextTestRunner类:运行测试类,它会提供一个标准平台来执行测试;
TestResults类:它提供用于测试结果的标准容器;
使用PyUnit设计测试用例
单元测试提供了一个基类,测试用例,可用于创建新的测试用例。为了设计测试用例,使用了三套方法:
1setUp()
2teardown()
3
4skipTest(aMesg:string)
5fail(aMesg:string)
6
7id():string
8shortDescription():string
使用Python单元测试的优势
可以帮助您在开发周期的早期发现错误;
可以帮助您编写更好的程序;
与其他测试方法和工具轻松同步;
它将减少许多错误;
将来修改起来更容易;
python培训:http://www.baizhiedu.com/python2019