Python中unittest模塊做UT(單元測試)使用實例
更新時間:2015年06月12日 09:38:18 投稿:junjie
這篇文章主要介紹了Python中unittest模塊做UT(單元測試)使用實例,本文直接給出待測試的類、測試類和測試結果以及測試總結,需要的朋友可以參考下
待測試的類(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):
#讓所有執(zhí)行測試的類都繼承于TestCase類,可以將TestCase看成是對特定類進行測試的方法的集合
#在setUp()方法中進行測試前的初始化工作。
def setUp(self):
self.widget = Widget()
#并在tearDown()方法中執(zhí)行測試后的清除工作,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在執(zhí)行測試的過程調用suit()方法來確定有多少個測試用例需要被執(zhí)行,
#可以將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') #在主函數(shù)中調用全局方法.
測試結果:
D:\Python>python27 Auto.py Test GetSize .Test Resize . ------------------------------ Ran 2 tests in 0.004s OK
總結:
1。第一步:先寫好測試類
2。第二步:導入unittest模塊及測試的類,運用setup()方法做測試前的準備工作,如建立數(shù)據(jù)庫連接,運用teardown()方法做測試后的清除工作,如取消數(shù)據(jù)庫的鏈接,再對類中的方法逐一做測試。
3。第三步: 寫suite()的全局方法,將要測試的方法,一一加入。
測試結果,有幾個測試用例就有幾個. 最后顯示OK,表示通過。
您可能感興趣的文章:
相關文章
Python字典數(shù)據(jù)對象拆分的簡單實現(xiàn)方法
這篇文章主要介紹了Python字典數(shù)據(jù)對象拆分的簡單實現(xiàn)方法,涉及Python針對字典數(shù)據(jù)的相關遍歷、拆分等操作技巧,需要的朋友可以參考下2017-12-12
Python OpenCV實戰(zhàn)之與機器學習的碰撞
機器學習是人工智能的子集,為計算機以及其它具有計算能力的系統(tǒng)提供自動預測或決策的能力。本文主要介紹了OpenCV 提供的常見機器學習算法和技術,用于解決計算機視覺項目中的實際問題,需要的朋友可以參考一下2021-12-12
python備份文件以及mysql數(shù)據(jù)庫的腳本代碼
最近正在學習python,看了幾天了,,所以寫個小腳本練習練習,沒什么含金量,只當練手2013-06-06

