本文实例讲述了Python之PyUnit单元测试,与erlang eunit单元测试很像,分享给大家供大家参考。具体方法如下:
1.widget.py文件如下:
#!/usr/bin/python # Filename:widget.pyclass Widget: def __init__(self, size = (40, 40)): self.size = size def getSize(self): return self.size def resize(self, width, height): if width < 0 or height < 0: raise ValueError, "illegal size" self.size = (width, height) def dispose(self): passDefaultTestCase
2. auto.py文件如下:
#!/usr/bin/python # Filename:auto.py import unittest from widget import Widget class WidgetTestCase(unittest.TestCase): def setUp(self): self.widget = Widget() def tearDown(self): self.widget = None def testSize(self): self.assertEqual(self.widget.getSize(), (50, 40)) def suite(): suite = unittest.TestSuite() suite.addTest(WidgetTestCase("testSize")) return suite if __name__ == "__main__": unittest.main(defaultTest = 'suite')
3.执行结果如下:
[code]jobin@jobin-desktop:~/work/python/py_unit$ python auto.py
.
----------------------------------------------------------------------
Ran 1 test in 0.000s
OK
jobin@jobin-desktop:~/work/python/py_unit$ python auto.py
F
======================================================================
FAIL: testSize (__main__.WidgetTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
File "auto.py", line 15, in testSize
self.assertEqual(self.widget.getSize(), (50, 40))
AssertionError: (40, 40) != (50, 40)
----------------------------------------------------------------------
Ran 1 test in 0.000s
FAILED (failures=1)
jobin@jobin-desktop:~/work/python/py_unit$[/code]
希望本文所述对大家的Python程序设计有所帮助。