python_常用断言assert

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

  • 常用

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

  • assertEqual

  • assertNotEqual

  • assertTrue

  • assertFalse

  • assertIsNone

  • assertIsNotNone

  • assertEqual 和 assertNotEqual

  • assertEqual:如两个值相等,则pass

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

  • 使用方法:
    assertEqual(first,second,msg)其中firstsecond进行比较,如果相等则通过;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)检查某个元素是否存在

  • 总结:

  • 常用

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
  • 使用时机:

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

  • 防御性的编程
  • 运行时对程序逻辑的检测
  • 合约性检查(比如前置条件,后置条件)
  • 程序中的常量
  • 检查文档
  • 例:防御性编程中添加断言
    在代码开始添加注释是个好的开端,但是人们都不太喜欢读和更新这些注释,这些注释会很快变得过时。但对于断言,我们可以同时对这块代码编写文档,如果这些断言被违反了,会直接引起一个简单而又直接的失败。
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()

     JUnit的各种断言

           JUnit提供了一些辅助函数,用于帮助你确定某个被测试函数是否工作正常。通常而言,我们把所有这些函数统称为断言。断言是单元测试最基本的组成部分。

           1. assertEquals([String message], expected,actual)

            比较两个基本类型或对象是否相等(expected和actual是原始类型数值(primitive value)或者必须为实现比较而具有equal方法);

           2.assertFalse([String message],boolean condition)

            对布尔值求值,看它是否为“真“;

           3.assertTrue([String message],boolean condition)

            对布尔值求值,看它是否为“假“;

           4.assertNull([String message],java.lang.Object object)

            检查对象是否为“空“;

           5.assertNotNull([String message],java.lang.Object object)

            检查对象是否不为“空”;

           6.assertSame([String message],expected,actual)

            检查两个对象是否为同一实例;

           7.assertNotSame([String message],expected,actual)

            检查两个对象是否不为同一实例;

           8. fail( String message )

            使测试立即失败,其中 message 参数使可选的。这种断言通常被用于标记某个不应该到达的分支(例如,在一个预期发生的异常之后)

猜你喜欢

转载自blog.csdn.net/guokaigdg/article/details/82051954