容易使用Python Unittest写单元测试用例(转)
简单使用Python Unittest写单元测试用例(转)简单使用Python Unittest写单元测试用例作为开发人员,对写的代
简单使用Python Unittest写单元测试用例(转)
简单使用Python Unittest写单元测试用例
作为开发人员,对写的代码进行单元测试是最基本的
对python语言来讲,其单元测试的利器是pyUnit, 这个从Python2.1之后的版本中,就已经是自带的了。
下面通过一个基本的例子来讲述如何来使用unittest.
首先是一个简单的功能。
area.py
- class?Area:??
- ????def?__init__(self,width=100,length=100):??
- ????????self._width?=?width??
- ????????self._length?=?length??
- ??????
- ????def?getWidth(self):??
- ????????return?self._width??
- ??
- ????def?getLength(self):??
- ????????return?self._length??
- ??
- ????def?getArea(self):??
- ????????return?self._width*self._length??
- ??
- ????def?setWidth(self,width):??
- ????????if?width?<=?0:??
- ????????????raise?ValueError,"Illeage?Width?value"??
- ????????self._width?=?width??
- ??
- ????def?setLenth(self,length):??
- ????????if?length?<=?0:??
- ????????????raise?ValueError,"Illeage?Length?value"??
- ????????self._length?=?length???
ut_area.py
- from?area?import?Area??
- import?unittest??
- ??
- class?AreaTestCase(unittest.TestCase):??
- ????def?setUp(self):??
- ????????self.area?=?Area()??
- ??????
- ????def?tearDown(self):??
- ????????self.area?=?None??
- ??????
- ????def?testArea(self):??
- ????????self.assertEqual(self.area.getArea(),10000)??
- ??????
- ????def?testWidth(self):??
- ????????self.area.setWidth(10)??
- ????????self.assertEqual(self.area.getWidth(),10)??
- ????def?testLength(self):??
- ????????self.area.setLenth(10)??
- ????????self.assertEqual(self.area.getLength(),10)??
- ??
- if?__name__?==?"__main__":??
- ????unittest.main()??
我们来看一下,单元测试的结果。
?
单元测试也可以以如下的方法来实现?
首先我们的测试类要继承于unittest.TestCase. 如果采用动态测试的方法可以为每个需要测试的方法编写测试方法,使用assertEqual( , ). 然后把我们的测试都放到unittest.TestSuite()容器中,最后使用 unittest.TextTestRunner().run(suite)方法自动测试。
- suite?=?unittest.TestSuite()??
- ????suite.addTest(AreaTestCase("testArea"))??
- ????suite.addTest(AreaTestCase("testWidth"))??
- ????suite.addTest(AreaTestCase("testLength"))??
- ??
- ??
- ????runner?=?unittest.TextTestRunner()??
- ????runner.run(suite)??
- ????print?"#"*80??
- ????unittest.main()??
我们把两种方法进行了对比,结果是一样的,
?
对TestCase,有以下的一些函数可以来使用
?
官方资料:http://docs.python.org/library/unittest.html