pytest常用断言

2023-07-29,,

如上官网所说,pytest使用python中的assert来比较实际值与预期值,实现断言功能

1 常用的断言方式 assert xxx

assert a == b

assert a!=b

assert a > b

assert a <b

assert a in b

assert a not in b

assert instance(a,int)

assert a >b and a >c 同时断言多个条件

assert a > b or a> c

2 断言异常 pytest.raise(xxx)

如果test代码出现了预期中的异常则断言成功,否则断言失败

执行结果

b为0 时,py会抛出ZeroDivisionError,b为1 时,情况正常,不会抛出异常。所以

预期会抛出ZeroDivisionError,断言成功

预期会抛出ValueError,实际是抛出ZeroDivisionError或者不抛出异常,断言失败

注意

1 这里没有用我们常见的assert的方式

2 注意with语句后的代码是否执行的问题

断言异常并断言异常信息中的文本与预期是否一致

执行结果

注意

1 assert的缩进位置

2 异常与预期不一致、未发生异常也会导致断言失败

3 异常有3个属性 traceback type value

也可以用正则匹配的方式来判断异常中的文本信息

不用with语句方式断言异常

断言未抛出指定异常

执行结果

3断言警告信息pytest_warning()

用法与异常断言一样

warning 的类型参照python的warning部分 https://docs.python.org/3/library/warnings.html

pytest常用断言的相关教程结束。

《pytest常用断言.doc》

下载本文的Word格式文档,以方便收藏与打印。