python中編寫單元測試

2021-09-24 20:03:39 字數 1610 閱讀 7335

在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 斷言...