unittest斷言方法

2021-09-29 09:00:11 字數 2262 閱讀 5225

斷言是測試用例的核心。我們通常使用assertequal()來判斷預期結果,用asserttrue()和assertfalse來做是非判斷。

import unittest

class

test

(unittest.testcase)

:def

setup

(self)

:print

('start'

)def

teardown

(self)

:print

('bye'

)def

test_001

(self)

: self.assertequal(

'1',

'1')

deftest_002

(self)

: self.assertequal(

'1',

'0')

if __name__ ==

'__main__'

: unittest.main(

)

執行結果,毫無疑問是失敗的

丟擲的異常在test_002方法中,預期結果是1,實際結果是0,0不等於1

在執行測試用例的過程中,最終用例是否執行通過,是通過判斷測試得到的實際結果與預期結果是否相等決定的。unittest 框架的 testcase類 提供下面方法用於測試結果的判斷

方法檢查

asserequal(a,b)

a == b

assernotequal(a,b)

a != b

asserttrue(x)

bool(x) is true

assertfalse(x)

bool(x) is false

assertis(a,b)

a is b

assertisnot(a,b)

a is not b 方法

檢查assertisnone(x)

x is none

assertisnotnone(x)

x is not none

assertin(a,b)

a in b

assertnotin(a,b)

a not in b

assertisinstance(a,b)

isinstance(a,b)

assertnotisinstance(a,b)

not isinstance(a,b)

斷言如果失敗,會終止程式,而我們在進行自動化測試的時候,不能說某個斷言失敗了,就所有用例都不再執行了,所以,斷言失敗,需要異常處理,丟擲異常,讓程式繼續執行

import unittest

class

test

(unittest.testcase)

:def

setup

(self)

:print

('start'

)def

teardown

(self)

:print

('bye'

)def

test_002

(self)

:try

: self.assertequal(

'1',

'0')

except assertionerror as e:

print

("該條測試斷言失敗"

,e)if __name__ ==

'__main__'

: unittest.main(

)

拓展:除了右鍵通過 run 執行 ,還可以通過在終端輸入

python 檔名
執行檔案

. 表示通過

f false 表示斷言沒用通過

e error 表示程式內部發生了錯誤

unittest中斷言方法

unitest 中的斷言方式 assertequal a,b,msg 測試失敗時列印的資訊 斷言a和b是否相等,相等則測試用例通過。deftest01 self self.a 1self.assertequal self.a,1,msg 斷言失敗 assertnotequal a,b,msg 測試失...

unittest 中斷言相關方法

unittest中斷言主要有三種型別 1.基本的布林斷言,即 要麼正確,要麼錯誤的驗證 2.比較斷言,如比較兩個變數的值 跟上面的布林斷言區別不大,主要是通過比較兩個變數的值得出布林值 3.複雜斷言 一般用的比較少,像斷言兩個列表 元組等 具體字段如下 assertequal a,b,msg 測試失...

學習記錄 unittest方法使用,斷言

開始,結束,測試用例,import unittest class usertestcase unittest.testcase 所有類中方法的入參為self,定義方法的變數也要self.變數 defsetup self print set up 開始 def teardown self print ...