Pytest七(assert断言)
一、assert

二、异常信息

三、异常断言
1、为了写关于引发异常的断言,可以使用pytest.raises作为上下文管理器,如下
import pytest
def test_zero_division():
with pytest.raises(ZeroDivisionError) as e:
1 / 0
# 断言异常类型type
assert e.type == ZeroDivisionError
# 断言异常value值
assert "division by zero" in str(e.value)
print('报错信息是%S',e.value)
if __name__ == "__main__":
pytest.main(["-s", "test_23.py",])
#e是一个异常信息实例,它是围绕实际引发的异常的包装器。主要属性是.type、 .value 和 .traceback
2、断言type的时候,异常类型是不需要加引号的,断言value值的时候需转str

3、在上下文管理器窗体中,可以使用关键字参数消息指定自定义失败消息:
![]()
四、常用断言
常用的有以下几种
-
assert xx 判断xx为真
-
assert not xx 判断xx不为真
-
assert a in b 判断b包含a
-
assert a == b 判断a等于b
-
assert a != b 判断a不等于b
import pytest
def is_true(a):
if a > 0:
return True
else:
return False
def test_01():
'''断言xx为真'''
a = 0
b = -1
assert is_true(a)
assert not is_true(b) # 一个用例可以支持多个断言
def test_02():
'''断言b 包含 a'''
a = "hello"
b = "hello world"
assert a in b
def test_03():
'''断言相等'''
a = "yoyo"
b = "yoyo"
assert a == b
def test_04():
'''断言不等于'''
a = 5
b = 6
assert a != b
if __name__ == "__main__":
pytest.main(["-s", "test_24.py"])




浙公网安备 33010602011771号