首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

容易使用Python Unittest写单元测试用例(转)

2013-11-08 
简单使用Python Unittest写单元测试用例(转)简单使用Python Unittest写单元测试用例作为开发人员,对写的代

简单使用Python Unittest写单元测试用例(转)

简单使用Python Unittest写单元测试用例

作为开发人员,对写的代码进行单元测试是最基本的

对python语言来讲,其单元测试的利器是pyUnit, 这个从Python2.1之后的版本中,就已经是自带的了。

下面通过一个基本的例子来讲述如何来使用unittest.

首先是一个简单的功能。

area.py

  1. class?Area:??
  2. ????def?__init__(self,width=100,length=100):??
  3. ????????self._width?=?width??
  4. ????????self._length?=?length??
  5. ??????
  6. ????def?getWidth(self):??
  7. ????????return?self._width??
  8. ??
  9. ????def?getLength(self):??
  10. ????????return?self._length??
  11. ??
  12. ????def?getArea(self):??
  13. ????????return?self._width*self._length??
  14. ??
  15. ????def?setWidth(self,width):??
  16. ????????if?width?<=?0:??
  17. ????????????raise?ValueError,"Illeage?Width?value"??
  18. ????????self._width?=?width??
  19. ??
  20. ????def?setLenth(self,length):??
  21. ????????if?length?<=?0:??
  22. ????????????raise?ValueError,"Illeage?Length?value"??
  23. ????????self._length?=?length???

ut_area.py

  1. from?area?import?Area??
  2. import?unittest??
  3. ??
  4. class?AreaTestCase(unittest.TestCase):??
  5. ????def?setUp(self):??
  6. ????????self.area?=?Area()??
  7. ??????
  8. ????def?tearDown(self):??
  9. ????????self.area?=?None??
  10. ??????
  11. ????def?testArea(self):??
  12. ????????self.assertEqual(self.area.getArea(),10000)??
  13. ??????
  14. ????def?testWidth(self):??
  15. ????????self.area.setWidth(10)??
  16. ????????self.assertEqual(self.area.getWidth(),10)??
  17. ????def?testLength(self):??
  18. ????????self.area.setLenth(10)??
  19. ????????self.assertEqual(self.area.getLength(),10)??
  20. ??
  21. if?__name__?==?"__main__":??
  22. ????unittest.main()??

我们来看一下,单元测试的结果。

容易使用Python Unittest写单元测试用例(转)

?

单元测试也可以以如下的方法来实现?

首先我们的测试类要继承于unittest.TestCase. 如果采用动态测试的方法可以为每个需要测试的方法编写测试方法,使用assertEqual( , ). 然后把我们的测试都放到unittest.TestSuite()容器中,最后使用 unittest.TextTestRunner().run(suite)方法自动测试。

  1. suite?=?unittest.TestSuite()??
  2. ????suite.addTest(AreaTestCase("testArea"))??
  3. ????suite.addTest(AreaTestCase("testWidth"))??
  4. ????suite.addTest(AreaTestCase("testLength"))??
  5. ??
  6. ??
  7. ????runner?=?unittest.TextTestRunner()??
  8. ????runner.run(suite)??
  9. ????print?"#"*80??
  10. ????unittest.main()??

我们把两种方法进行了对比,结果是一样的,

容易使用Python Unittest写单元测试用例(转)

?

对TestCase,有以下的一些函数可以来使用

容易使用Python Unittest写单元测试用例(转)

?

官方资料:http://docs.python.org/library/unittest.html

热点排行