待測試的類(Widget.py)
# Widget.py # Python 2.7.6 class 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' else: self.size = (width,height) return self.size def dispose(self): pass
測試類別(Auto.py)
# coding=utf8 # Auto.dy # Python 2.7.6 from Widget import Widget #匯入測試類別模組Widget import unittest #匯入unittest模組 class WidgetTestCase(unittest.TestCase): #讓所有執行測試的類都繼承於TestCase類,可以將TestCase看成是對特定類進行測試的方法的集合 #在setUp()方法中進行測試前的初始化工作。 def setUp(self): self.widget = Widget() #並在tearDown()方法中執行測試後的清除工作,setUp()和tearDown()都是TestCase類中定義的方法。 def tearDown(self): self.widget = None #測試Widget類中getSize方法 def testgetSize(self): print "Test GetSize" #對Widget類中getSize()方法的傳回值和預期值進行比較,確保兩者是相等的, #assertEqual()也是TestCase類中定義的方法。 self.assertEqual(self.widget.getSize(), (40, 40)) #測試Widget類中reSize方法 def testreSize(self): print "Test Resize" #對Widget類中reSize()方法的傳回值和預期值進行比較,確保兩者是相等的。 #assertEqual()也是TestCase類中定義的方法。 self.assertEqual(self.widget.reSize(50,100),(50,100)) #提供名為suite()的全域方法,PyUnit在執行測試的程序呼叫suit()方法來確定有多少個測試案例需要被執行, #可以將TestSuite看成是包含所有測試案例的一個容器。 def suite(): suite = unittest.TestSuite() suite.addTest(WidgetTestCase("testgetSize"))#往此添加需要測試的方法testgetSize() suite.addTest(WidgetTestCase("testreSize")) #往此添加需要測試的方法testreSize() return suite if __name__ == "__main__": unittest.main(defaultTest = 'suite') #在主函數中調用全域方法.
測試結果:
D:\Python>python27 Auto.py Test GetSize .Test Resize . ------------------------------ Ran 2 tests in 0.004s OK
總結:
1。第一步:先寫好測試類別
2。第二步:匯入unittest模組及測試的類,運用setup()方法做測試前的準備工作,如建立資料庫連接,運用teardown()方法做測試後的清除工作,如取消資料庫的連結,再對類中的方法逐一做測試。
3。第三步: 寫suite()的全域方法,將要測試的方法,一一加入。
測試結果,有幾個測試案例就有幾個. 最後顯示OK,表示通過。