做网站拍幕布照是什么意思,平面图设计软件有哪些,免费网站报价单怎么做,东营有网站前言
与unittest不同#xff0c;pytest使用的是python自带的assert关键字来进行断言assert关键字后面可以接一个表达式#xff0c;只要表达式的最终结果为True#xff0c;那么断言通过#xff0c;用例执行成功#xff0c;否则用例执行失败
assert小栗子
想在抛出异常之…前言
与unittest不同pytest使用的是python自带的assert关键字来进行断言assert关键字后面可以接一个表达式只要表达式的最终结果为True那么断言通过用例执行成功否则用例执行失败
assert小栗子
想在抛出异常之后输出一些提示信息执行之后就方便查看是什么原因了 # 异常信息
def f():return 3
def test_function():a f()assert a % 2 0, 判断 a 为偶数当前 a 的值为%s % a 执行结果 常用断言
pytest 里面断言实际上就是 python 里面的 assert 断言方法常用的有以下几种
assert xx 判断 xx 为真assert not xx 判断 xx 不为真assert a in b 判断 b 包含 aassert a b 判断 a 等于 bassert a ! b 判断 a 不等于 b
异常断言
可以使用 pytest.raises 作为上下文管理器当抛出异常时可以获取到对应的异常实例 # 断言异常
def test_zero_division():with pytest.raises(ZeroDivisionError):1 / 0断言场景断言它抛的异常是不是预期想要的
代码执行1/0
预期结果抛的异常是ZeroDivisionError: division by zero
如何断言通常是断言异常的 type 和 value 值了
具体方式这里 1/0 的异常类型是 ZeroDivisionError异常的 value 值是 divisionby zero # 详细断言异常
def test_zero_division_long():with pytest.raises(ZeroDivisionError) as excinfo:1 / 0# 断言异常类型 typeassert excinfo.type ZeroDivisionError# 断言异常 value 值assert division by zero in str(excinfo.value) excinfo 是一个异常信息实例
主要属性 .type 、 .value 、 .traceback
注意断言 type 的时候异常类型是不需要加引号的断言 value值的时候需转 str
拓展一match
可以将 match 关键字参数传递给上下文管理器以测试正则表达式与异常的字符串表示形式是否匹配
注意这种方法只能断言value不能断言type # 自定义消息
def test_zero_division_long():with pytest.raises(ZeroDivisionError, match.*zero.*) as excinfo:1 / 0 该 match 方法的regexp参数与 re.search 函数匹配因此在上面的示例中 matchzero 也可以使用 拓展二检查断言装饰器 # 断言装饰器
pytest.mark.xfail(raisesZeroDivisionError)
def test_f():1 / 0 执行结果 知识点
代码抛出异常但是和raises指定的异常类相匹配所以不会断言失败它相当于一个检查异常装饰器功能检查是否有异常不确定是否有异常with pytest.raise(ZeroDivisionError) 对于故意测试异常代码的情况使用可能会更好而pytest.mark.xfail(raisesZeroDivisionError) 对于检查未修复的错误即可能会发生异常使用检查断言可能会更好
最后感谢每一个认真阅读我文章的人礼尚往来总是要有的这些资料对于【软件测试】的朋友来说应该是最全面最完整的备战仓库虽然不是什么很值钱的东西如果你用得到的话可以直接拿走 这些资料对于【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴上万个测试工程师们走过最艰难的路程希望也能帮助到你