當前位置:首頁 » 編程語言 » python中的unittest

python中的unittest

發布時間: 2023-12-06 17:29:21

python的unittest模塊能用來做多線程的單元測試嗎

待測試的類(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,表示通過。

❷ python中的unittest有什麼作用

python中unittest模塊是用來做單元測試的。

unittest是一個python版本的junit,junit是java中的單元測試框架,對java的單元測試,有一句話很貼切:Keep thebar green,相信使用eclipse寫過java單元測試的都心領神會。unittest實現了很多junit中的概念,比如我們非常熟悉的test case, test suite等,總之,原理都是相通的,只是用不同的語言表達出來。

下面是一個例子

importrandom
importunittest

classTestSequenceFunctions(unittest.TestCase):

defsetUp(self):
self.seq=range(10)

deftest_shuffle(self):
#
random.shuffle(self.seq)
self.seq.sort()
self.assertEqual(self.seq,range(10))

#
self.assertRaises(TypeError,random.shuffle,(1,2,3))

deftest_choice(self):
element=random.choice(self.seq)
self.assertTrue(elementinself.seq)

deftest_sample(self):
withself.assertRaises(ValueError):
random.sample(self.seq,20)
forelementinrandom.sample(self.seq,5):
self.assertTrue(elementinself.seq)

if__name__=='__main__':
unittest.main()

❸ python如何開展單元測試

首先你要知道單元測試是什麼,單元測試就是針對軟體中的最小可測試單元進行檢查和驗證,在python中可以理解為是對類或者是方法的正確性驗證
其次要了解python語言中的單元測試框架有哪些,在python語言中的單元測試框架也有很多,解釋本身自帶的unittest單元測試框架,還有很流行的pytest(有豐富的插件),這些在我之前在黑馬程序員學習測試時都有涉及,或者你可以去看論壇上面有很多python開展單元測試的技術文章。
最後使用某個單元測試框架如何實現,拿解釋器自帶的unittest舉例子吧,使用這個框架來實現單元測試的話,需要創建測試類,創建測試方法,設置fixture,斷言,然後通過測試條件和運行器來執行測試用例.其測試數據可以使用參數化動態獲取.

熱點內容
存儲內存和運行內存的區別 發布:2024-12-01 00:03:39 瀏覽:253
編譯狀態圖原理 發布:2024-11-30 23:54:22 瀏覽:738
谷歌搜索緩存伺服器地址 發布:2024-11-30 23:38:59 瀏覽:503
箍筋加密原因 發布:2024-11-30 23:33:38 瀏覽:416
千兆路由器有哪些配置 發布:2024-11-30 23:33:36 瀏覽:411
產品配置具體指哪些 發布:2024-11-30 23:28:21 瀏覽:16
apt編譯環境 發布:2024-11-30 23:28:12 瀏覽:382
java三大特性 發布:2024-11-30 23:27:08 瀏覽:481
絕地求生2安卓如何登 發布:2024-11-30 23:27:02 瀏覽:59
安卓游戲哪裡下載多 發布:2024-11-30 23:19:37 瀏覽:711