断言对比
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'])
执行结果
image.png
异常断言
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,来捕获对应的异常示例,exceptionInfo为一个对象示例来接收属性信息,通常是断言异常的 type 和 value 值
参考:https://www.jianshu.com/p/82945311e03e