在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输入对应的表达式,如果表达式为真,则通过;味精是可选的;如果表达式为假,则断言假,然后通过
assertIsNone和assertIsNotNone
assertIsNone:不存在,则pass
assertIsNotNone:存在,则pass
使用方法:
assertIsNone(obj,msg)检查某个元素是否存在
总结:
常用
assertEqual(a, b) a == b
assertNotEqual(a, b) a != b
assertTrue(x) bool(x) is True
assertFalse(x) bool(x) is False
assertIs(a, b) a is b 2.7
assertIsNot(a, b) a is not b 2.7
assertIsNone(x) x is None 2.7
assertIsNotNone(x) x is not None 2.7
assertIn(a, b) a in b 2.7
assertNotIn(a, b) a not in b 2.7
assertIsInstance(a, b) isinstance(a, b) 2.7
assertNotIsInstance(a, b) not isinstance(a, b) 2.7
其它
assertAlmostEqual(a, b) round(a-b, 7) == 0
assertNotAlmostEqual(a, b) round(a-b, 7) != 0
assertGreater(a, b) a > b 2.7
assertGreaterEqual(a, b) a >= b 2.7
assertLess(a, b) a < b 2.7
assertLessEqual(a, b) a <= b 2.7
assertRegexpMatches(s, re) regex.search(s) 2.7
assertNotRegexpMatches(s, re) not regex.search(s) 2.7
assertItemsEqual(a, b) sorted(a) == sorted(b) and works with unhashable objs 2.7
assertDictContainsSubset(a, b) all the key/value pairs in a exist in b 2.7
assertMultiLineEqual(a, b) strings 2.7
assertSequenceEqual(a, b) sequences 2.7
assertListEqual(a, b) lists 2.7
assertTupleEqual(a, b) tuples 2.7
assertSetEqual(a, b) sets or frozensets 2.7
assertDictEqual(a, b) dicts 2.7
assertMultiLineEqual(a, b) strings 2.7
assertSequenceEqual(a, b) sequences 2.7
assertListEqual(a, b) lists 2.7
assertTupleEqual(a, b) tuples 2.7
assertSetEqual(a, b) sets or frozensets 2.7assertDictEqual(a, b) dicts 2.7
使用时机:
那么我们什么时候应该使用断言呢?如果没有特殊用途,则应在以下情况下使用断言:
(1)防御性的编程
(2)运行时对程序逻辑的检测
(3)合约性检查(比如前置条件,后置条件)
(4)程序中的常量
(5)检查文档
(6)例:防御性编程中添加断言
在代码开头添加注释是一个好的开始,但人们不喜欢阅读和更新这些注释,它们很快就会过时。但是对于断言,我们可以同时记录这段代码,如果违反了这些断言,将直接导致简单直接的失败。
assert target in(x, y, z)
if target ==x:
run_x_code()
elif target ==y:
run_y_code()
else:
assert target == z
run_z_code()
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ 一个函数如何在python中返回多个结果?01/02
- ♥ 接下来在python中获取迭代器11/07
- ♥ Python 加入等级考试多年10/04
- ♥ numpy 和 python 的区别11/18
- ♥ python如何生成文件夹12/27
- ♥ python可以在什么平台上运行10/07
内容反馈