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"])

 

 



posted @ 2021-02-03 17:38  水绿冰蓝  阅读(61)  评论(0)    收藏  举报