如今的软件开发过程当中,测试每每关系到一个项目的成败。因此,咱们很是有必要学习如何测试本身所编写的代码。那么,python可以在这方面作些什么呢?python
首先,咱们编写一个本身的类文件。程序员
例1. widget.pyapp
- class Widget:
- def __init__(self,size=(40,40)):
- self._size=size
- def getSize(self):
- return self._size
- def resize(self,width,height):
- self._size=(width,height)
- def dispose(self):
- pass
采用手工方式进行单元测试:
- #-*-coding:UTF-8-*-
- #python的测试模块
- from widget import Widget
- class TestWidget:
- def testSize(self):
- expectedSize=(40,40)
- widget=Widget()
- if widget.getSize()==expectedSize:
- print "test [Widget]:getSize works perfected!"
- else:
- print "test [Widget]:getSize doesn't work!"
-
- #测试
- if __name__=='__main__':
- myTest=TestWidget()
- myTest.testSize()
手工编写的这种测试方法存在不少问题:框架
1.测试程序的写法没有必定的规范能够遵循,十个程序员可能写出彻底不一样的测试程序来单元测试
2.每一个程序员若是都有本身不一样的测试类的方法,光维护这些被测试的类都够麻烦了,更不用说维护测试类。学习
3.测试用的代码可能比程序自己还多,大大加大了程序员的工做量。测试
因此,基于以上几点,python推出了它本身的一个框架来帮助咱们完成这些功能——PyUnitui
使用python的PyUnit测试框架:spa
- #-*-coding:UTF-8-*-
- from widget import Widget
- import unittest
- class WidgetTestCase(unittest.TestCase):
- def setUp(self):
- self.widget=Widget()
- def tearDown(self):
- self.widget=None
- def testSize(self):
- self.assertEqual(self.widget.getSize(),(40,40))
-
- #构造测试集
- def suite():
- suite=unittest.TestSuite()
- suite.addTest(WidgetTestCase("testSize"))
- return suite
- #测试
- if __name__=="__main__":
- unittest.main(defaultTest='suite')
在采用这个单元测试框架后,使得全部python程序员均可以使用一样的单元测试方法,测试过程成为了一个有序的行为。这就是这个框架所带来的最大的好处。.net