Python中unittest模块做UT(单元测试)使用实例
待测试的类(Widget.py)
#Widget.py #Python2.7.6 classWidget: def__init__(self,size=(40,40)): self.size=size defgetSize(self): returnself.size defreSize(self,width,height): ifwidth<0orheight<0: raiseValueError,'illegalsize' else: self.size=(width,height) returnself.size defdispose(self): pass
测试类(Auto.py)
#coding=utf8
#Auto.dy
#Python2.7.6
fromWidgetimportWidget#导入测试类模块Widget
importunittest#导入unittest模块
classWidgetTestCase(unittest.TestCase):
#让所有执行测试的类都继承于TestCase类,可以将TestCase看成是对特定类进行测试的方法的集合
#在setUp()方法中进行测试前的初始化工作。
defsetUp(self):
self.widget=Widget()
#并在tearDown()方法中执行测试后的清除工作,setUp()和tearDown()都是TestCase类中定义的方法。
deftearDown(self):
self.widget=None
#测试Widget类中getSize方法
deftestgetSize(self):
print"TestGetSize"
#对Widget类中getSize()方法的返回值和预期值进行比较,确保两者是相等的,
#assertEqual()也是TestCase类中定义的方法。
self.assertEqual(self.widget.getSize(),(40,40))
#测试Widget类中reSize方法
deftestreSize(self):
print"TestResize"
#对Widget类中reSize()方法的返回值和预期值进行比较,确保两者是相等的。
#assertEqual()也是TestCase类中定义的方法。
self.assertEqual(self.widget.reSize(50,100),(50,100))
#提供名为suite()的全局方法,PyUnit在执行测试的过程调用suit()方法来确定有多少个测试用例需要被执行,
#可以将TestSuite看成是包含所有测试用例的一个容器。
defsuite():
suite=unittest.TestSuite()
suite.addTest(WidgetTestCase("testgetSize"))#往此添加需要测试的方法testgetSize()
suite.addTest(WidgetTestCase("testreSize"))#往此添加需要测试的方法testreSize()
returnsuite
if__name__=="__main__":
unittest.main(defaultTest='suite')#在主函数中调用全局方法.
测试结果:
D:\Python>python27Auto.py TestGetSize .TestResize . ------------------------------ Ran2testsin0.004s OK
总结:
1。第一步:先写好测试类
2。第二步:导入unittest模块及测试的类,运用setup()方法做测试前的准备工作,如建立数据库连接,运用teardown()方法做测试后的清除工作,如取消数据库的链接,再对类中的方法逐一做测试。
3。第三步:写suite()的全局方法,将要测试的方法,一一加入。
测试结果,有几个测试用例就有几个.最后显示OK,表示通过。