Pytest系列(二)assert 斷言
阿新 • • 發佈:2020-08-27
一、斷言
Pytest 允許使用 python 自帶的 assert 關鍵字進行斷言,在條件不滿足時直接返回錯誤,而不必等到程式執行後出現崩潰。
assert 關鍵字後可以跟表示式 expr 和提示資訊 msg。若 expr 表示式為真,則斷言通過,用例執行成功,也可以使用 msg 指定斷言失敗的提示資訊。
語法格式:assert expr [, msg]
示例:
def func(): return 5 def test_demo(): num = func() assert num % 2 == 0, "%d 不是偶數" % num
執行結果:
二、常用斷言
-
assert expr :判斷表示式 expr 為真
-
assert not expr :判斷 expr 不為真
-
assert a in b :判斷 b 包含 a
-
assert a == b :判斷 a 等於 b
-
assert a != b :判斷 a 不等於 b
三、異常斷言
可以使用 pytest.raises 作為上下文管理器,在丟擲異常時捕獲對應的異常例項。
def test_zero_division(): with pytest.raises(ZeroDivisionError) as excinfo: 1 / 0 assert excinfo.type == ZeroDivisionError assert "division by zero" in str(excinfo.value)
其中,excinfo 是一個 ExceptionInfo 例項,是實際異常的裝飾器,主要屬性包括 .type、.value、.traceback。