断言

Posted tester-chenmo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了断言相关的知识,希望对你有一定的参考价值。

1、使用assert 编写断言

技术图片

 

 

 

2、触发期望异常的断言

技术图片

 

 

 

3、特殊数据结构比较优化

针对一些特殊的数据结构间的比较,pytest对结果的显示做了一些优化:

  • 集合、列表等:标记出第一个不同的元素;
  • 字符串:标记出不同的部分;
  • 字典:标记出不同的条目;

技术图片

 

 

 

4、为失败断言添加自定义的说明

(1)重写__repr__方法优化显示

技术图片

 

 

 

(2)使用 pytest_assertrepr_compare钩子方法

技术图片

 

 

 

 技术图片

 

 

 

5、断言自省细节 

当断言失败时,pytest为提供了非常人性化的失败说明,中间往往夹杂着相应变量的自省信息,这个称为断言的自省;pytest是如何做到这样的:pytest发现测试模块,并引入它们 ,与此同时,pytest会复写断言语句,添加自省信息;但是,不是测试模块的断言语句并不会被复写;

(1)复写缓存文件

 pytest会把被复写的模块存储到本地作为缓存使用,可以通过在测试用例的根文件夹中的conftest.py里添加如下配置来禁止这种行为:

技术图片

 

 这不会方法使用断言自省,只是不会再本地存储.pyc文件。

(2)去使能断言自省

  • 在需要去使能模块的docstring中添加PYTEST_DONT_REWRITE字符串;
  • 执行pytest时,添加--assert=plain选项;

 

以上是关于断言的主要内容,如果未能解决你的问题,请参考以下文章

postman测试实例--断言

postman断言作用及怎么使用

Swift编程语言学习1.7——断言

断言啥时候应该留在生产代码中? [关闭]

jmeter添加断言

GCC优化技巧,真的有用吗?