斷言對比
unittest 斷言
assertEqual(a, b) # 判斷a和b是否相等
assertNotEqual(a, b) # 判斷a不等于b
assertTrue(a) # 判斷a是否為Ture
assertFalse(a) # 判斷a是否為False
assertIn(a, b) # a 包含在b里面
asserNotIn(a, b) # a 不包含在b里面
pytest 斷言
pytest只需要用assert來斷言就行,相對更簡單而便捷
assert xx # 判斷 xx 為真
assert not xx #判斷 xx 不為真
assert a in b #判斷 b 包含 a
assert a == b #判斷 a 等于 b
assert a != b #判斷 a 不等于 b
pytest示例代碼
import pytest
def f():
return 5;
def test_f():
n=f()
assert n % 3 ==0
if __name__ == '__main__':
pytest.main(['-s','test_demo1.py'])
執(zhí)行結(jié)果
異常斷言
def test_zero_division():
with pytest.raises(ZeroDivisionError) as exceptionInfo:
100/0
# 斷言異常類型
assert exceptionInfo.type == ZeroDivisionError
# 斷言異常的值
assert "division by zero" in str(exceptionInfo.value)
知識點:
使用pytest.raises姻氨,來捕獲對應(yīng)的異常示例钓辆,exceptionInfo為一個對象示例來接收屬性信息,通常是斷言異常的 type 和 value 值
參考:http://www.reibang.com/p/82945311e03e