济源建网站怎么网站代备案
web/
2025/10/6 21:05:39/
文章来源:
济源建网站,怎么网站代备案,网站的内容规划怎么写,游戏网站建设收费明细一、前言
用例三要素之一就是对预期结果的断言。
何为断言#xff1f;简单来说就是实际结果和期望结果去对比#xff0c;符合预期就测试pass#xff0c;不符合预期那就测试 failed。断言内容就是你要的预期结果。断言包含对接口响应内容做断言、也包含对落DB的数据做断言。…一、前言
用例三要素之一就是对预期结果的断言。
何为断言简单来说就是实际结果和期望结果去对比符合预期就测试pass不符合预期那就测试 failed。断言内容就是你要的预期结果。断言包含对接口响应内容做断言、也包含对落DB的数据做断言。
pytest可以让开发者使用Python断言来验证测试中的期望值。
话不多说我们来举个小例子熟悉一下一般我们会在抛出异常之后输出一些提示信息执行之后就方便查看是什么原因了。
# 异常信息
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) 对于检查未修复的错误即可能会发生异常使用检查断言可能会更好
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/88110.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!