单元测试是软件开发中一个必不可少的部分。通过单元测试,我们可以评估每个代码组件,查看软件性能如何,然后决定它如何对合法或非法输入做出反应。一个单元测试的回归套也是一种发现由重组代码或者写入新代码引起的意料之外的变化的非常好的方式。
在本文中,我检查了Python中的单元测试机制,从unittest模块与其关键类开始。单独地检查了测试,也集合式地检查测试,讨论怎样简便他们的构建和使用。读者应该对Python有一些应用知识。例用的测试代码需要Python2.5或者更高的版本。
Unittest模块
Unittest模块开始以第三方模块PyUnit应用。PyUnit是JUnit的一个Python端口,Java的单元测试框架。由史蒂夫.玻塞尔设计,PyUnit从版本2.5开始成为正式的Python模块。
图1:unittest的核心类
......
第二对方法控制测试的执行。两个方法都以信息字符串作输入,而且都会中止进行中的测试。但是skipTest()方法取消当前测试,而fail()方法直接放弃掉当前测试。
第三组方法帮助识别测试。id()方法返回一个包含有TestCase名字对象与其测试例行工作名字的字符串。而shortDescription()方法在每个测试工作开端返回docstr标注。如果测试工作没有这样的标准,shortDescription()方法就不返回值。
列表一显示样例-测试用例FooTest的基本要素。FooTest有两个测试程序:testA()和testB()。两个程序从自身得到需要的变量。两者对第一行代码都有docstr标注。
列表一:显示单元测试执行顺序的代码
#!/usr/bin/python import unittest class FooTest(unittest.TestCase): """Sample test case""" # preparing to test def setUp(self): """ Setting up for the test """ print "FooTest:setUp_:begin" ## do something... print "FooTest:setUp_:end" # ending the test def tearDown(self): """Cleaning up after the test""" print "FooTest:tearDown_:begin" ## do something... print "FooTest:tearDown_:end" # test routine A def testA(self): """Test routine A""" print "FooTest:testA" # test routine B def testB(self): """Test routine B""" print "FooTest:testB" |
......
版权声明:51Testing软件测试网及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。