待測(cè)試的類(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
測(cè)試類(Auto.py)
# coding=utf8 # Auto.dy # Python 2.7.6 from Widget import Widget #導(dǎo)入測(cè)試類模塊Widget import unittest #導(dǎo)入unittest模塊 class WidgetTestCase(unittest.TestCase): #讓所有執(zhí)行測(cè)試的類都繼承于TestCase類,可以將TestCase看成是對(duì)特定類進(jìn)行測(cè)試的方法的集合 #在setUp()方法中進(jìn)行測(cè)試前的初始化工作。 def setUp(self): self.widget = Widget() #并在tearDown()方法中執(zhí)行測(cè)試后的清除工作,setUp()和tearDown()都是TestCase類中定義的方法。 def tearDown(self): self.widget = None #測(cè)試Widget類中g(shù)etSize方法 def testgetSize(self): print "Test GetSize" #對(duì)Widget類中g(shù)etSize()方法的返回值和預(yù)期值進(jìn)行比較,確保兩者是相等的, #assertEqual()也是TestCase類中定義的方法。 self.assertEqual(self.widget.getSize(), (40, 40)) #測(cè)試Widget類中reSize方法 def testreSize(self): print "Test Resize" #對(duì)Widget類中reSize()方法的返回值和預(yù)期值進(jìn)行比較,確保兩者是相等的。 #assertEqual()也是TestCase類中定義的方法。 self.assertEqual(self.widget.reSize(50,100),(50,100)) #提供名為suite()的全局方法,PyUnit在執(zhí)行測(cè)試的過(guò)程調(diào)用suit()方法來(lái)確定有多少個(gè)測(cè)試用例需要被執(zhí)行, #可以將TestSuite看成是包含所有測(cè)試用例的一個(gè)容器。 def suite(): suite = unittest.TestSuite() suite.addTest(WidgetTestCase("testgetSize"))#往此添加需要測(cè)試的方法testgetSize() suite.addTest(WidgetTestCase("testreSize")) #往此添加需要測(cè)試的方法testreSize() return suite if __name__ == "__main__": unittest.main(defaultTest = 'suite') #在主函數(shù)中調(diào)用全局方法.
測(cè)試結(jié)果:
D:/Python>python27 Auto.py Test GetSize .Test Resize . ------------------------------ Ran 2 tests in 0.004s OK
總結(jié):
1。第一步:先寫(xiě)好測(cè)試類
2。第二步:導(dǎo)入unittest模塊及測(cè)試的類,運(yùn)用setup()方法做測(cè)試前的準(zhǔn)備工作,如建立數(shù)據(jù)庫(kù)連接,運(yùn)用teardown()方法做測(cè)試后的清除工作,如取消數(shù)據(jù)庫(kù)的鏈接,再對(duì)類中的方法逐一做測(cè)試。
3。第三步: 寫(xiě)suite()的全局方法,將要測(cè)試的方法,一一加入。
測(cè)試結(jié)果,有幾個(gè)測(cè)試用例就有幾個(gè). 最后顯示OK,表示通過(guò)。
新聞熱點(diǎn)
疑難解答
圖片精選