Python之assert断言介绍

Python (208) 2023-04-26 02:47:46

python自动化测试中寻找元素并进行操作,如果在元素好找的情况下,相信大家都可以较熟练地编写用例脚本了,但光进行操作可能还不够,有时候也需要对预期结果进行判断。

常用

这里介绍几个常用断言的使用方法,可以一定程度上帮助大家对预期结果进行判断。-

assertEqual

assertNotEqual

assertTrue

assertFalse

assertIsNone

assertIsNotNone

assertEqual 和 assertNotEqual

assertEqual:如两个值相等,则pass

assertNotEqual:如两个值不相等,则pass

使用方法:

assertEqual(first,second,msg)其中first与second进行比较,如果相等则通过;msg为失败时打印的信息,选填;断言assertNotEqual反着用就可以了。

assertTrue和assertFalse

assertTrue:判断bool值为True,则pass

assertFalse:判断bool值为False,则Pass

使用方法:

assertTrue(expr,msg)其中express输入相应表达式,如果表达式为真,则pass;msg选填;断言assertFalse如果表达式为假,则pass

assertIsNone和assertIsNotNone

assertIsNone:不存在,则pass

assertIsNotNone:存在,则pass

使用方法:

assertIsNone(obj,msg)检查某个元素是否存在

相关推荐:《Python视频教程》

总结:

常用

assertEqual(a,b)a==b
assertNotEqual(a,b)a!=b
assertTrue(x)bool(x)isTrue
assertFalse(x)bool(x)isFalse
assertIs(a,b)aisb2.7
assertIsNot(a,b)aisnotb2.7
assertIsNone(x)xisNone2.7
assertIsNotNone(x)xisnotNone2.7
assertIn(a,b)ainb2.7
assertNotIn(a,b)anotinb2.7
assertIsInstance(a,b)isinstance(a,b)2.7
assertNotIsInstance(a,b)notisinstance(a,b)2.7

其它

assertAlmostEqual(a,b)round(a-b,7)==0
assertNotAlmostEqual(a,b)round(a-b,7)!=0
assertGreater(a,b)a>b2.7
assertGreaterEqual(a,b)a>=b2.7
assertLess(a,b)a<b2.7
assertLessEqual(a,b)a<=b2.7
assertRegexpMatches(s,re)regex.search(s)2.7
assertNotRegexpMatches(s,re)notregex.search(s)2.7
assertItemsEqual(a,b)sorted(a)==sorted(b)andworkswithunhashableobjs2.7
assertDictContainsSubset(a,b)allthekey/valuepairsinaexistinb2.7
assertMultiLineEqual(a,b)strings2.7
assertSequenceEqual(a,b)sequences2.7
assertListEqual(a,b)lists2.7
assertTupleEqual(a,b)tuples2.7
assertSetEqual(a,b)setsorfrozensets2.7
assertDictEqual(a,b)dicts2.7
assertMultiLineEqual(a,b)strings2.7
assertSequenceEqual(a,b)sequences2.7
assertListEqual(a,b)lists2.7
assertTupleEqual(a,b)tuples2.7
assertSetEqual(a,b)setsorfrozensets2.7assertDictEqual(a,b)dicts2.7

使用时机:

那么我们什么时候应该使用断言呢?如果没有特别的目的,断言应该用于如下情况:

(1)防御性的编程

(2)运行时对程序逻辑的检测

(3)合约性检查(比如前置条件,后置条件)

(4)程序中的常量

(5)检查文档

(6)例:防御性编程中添加断言

在代码开始添加注释是个好的开端,但是人们都不太喜欢读和更新这些注释,这些注释会很快变得过时。但对于断言,我们可以同时对这块代码编写文档,如果这些断言被违反了,会直接引起一个简单而又直接的失败。

asserttargetin(x,y,z)
iftarget==x:
run_x_code()
eliftarget==y:
run_y_code()
else:
asserttarget==z
run_z_code()
THE END

发表回复