Python中unittest模組做UT(單元測試)使用執行個體

來源:互聯網
上載者:User
待測試的類(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,表示通過。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.