知行编程网知行编程网  2022-11-19 15:30 知行编程网 隐藏边栏  26 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于Python之assert断言介绍的相关知识,希望可以帮到处于编程学习途中的小伙伴

python自动化测试中查找元素并对其进行操作。如果元素容易找到,相信大家都能熟练写用例脚本,但操作可能还不够,有时还需要判断预期的结果。

Python的assert断言介绍


常用

这里有几个常用的断言,可以在一定程度上帮助你判断预期的结果。 -

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()

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享