在python中編寫單元測試需要引入unittest模組
首先建立乙個service,簡單的用於計算求和
def
add(num1, num2)
: result =
none
try:
float
(num1)
float
(num2)
result = num1 + num2
except valueerror:
raise valueerror(
"please input two number"
)return result
接著編寫測試類:
import unittest
from rediss.add_service import add
class
addtest
(unittest.testcase)
:def
test_add_result
(self)
: self.assertequal(add(1,
2),3
)def
test_add_var
(self)
:with self.assertraises(valueerror)
: add(
"a",2)
if __name__ ==
"__main__"
: unittest.main(
)
測試類需要繼承unittest.testcase類,所有的測試方法必須要以test_開頭,否則測試的時候不會被執行執行單元測試unittest.testcase預支了很多的判斷條件,常用的有兩個,assertequal(a,b)和assertraises(error),前者用於將執行結果與特定值做對比,檢驗結果的正確性,後者檢驗丟擲的異常是不是符合預期
主要有兩個方法:
如上加上測試類加上if __name__=="__main__":unittest.mian()
在命令列通過python -m unittest 《目錄檔名》來執行
可以在單元測試中編寫兩個特殊的setup()
和teardown()
方法。這兩個方法會分別在每呼叫乙個測試方法的前後分別被執行。
setup()
和teardown()
方法有什麼用呢?設想你的測試需要啟動乙個資料庫,這時,就可以在setup()
方法中連線資料庫,在teardown()
方法中關閉資料庫,這樣,不必在每個測試方法中重複相同的**
上面類加上:
def
setup
(self)
:print
('setup...'
)def
teardown
(self)
:print
('teardown...'
)
單元測試 單元測試編寫的原則
公司要求提公升單元測試的質量,其中我作為方案和推動的主導,對開發過程中的單元測試,有了一些思考和總結 單元測試編寫的目的,是面向計算機特性的,基於函式的in out,所以單元測試的好幫手就是斷言,通過不斷的構造輸出並對結果進行斷言,我們就可以針對乙個物件以及它的函式,構建出充足的用例去包裹它,以期望...
Python 單元測試
一 假設我們編寫了一段程式,主要功能是完成阿拉伯數字和羅馬數字之間的轉換 在羅馬數字中,利用7個字母進行重複或者組合來表達各式各樣的數字 i 1 v 5 x 10 l 50 c 100 d 500 m 1000 還有一些關於構造羅馬數字的規則。此程式的框架如下 其中,class romanerror...
python 單元測試
assertequal a,b assertnotequal a,b 斷言值是否相等 assertis a,b assertisnot a,b 斷言是否同一物件 記憶體位址一樣 assertlistequal list1,list2 assertitemnotequal list1,list2 斷言...