断言:python assert断言是声明布尔值必须为真的判定,如果发生异常就说明表达式为假。
可以理解assert断言语句为raise-if-not,用来测试表示式,其返回值为假,就会触发异常并可打印出指定的信息(info)。
常用的assert断言:
以下断言都是在判断为假时执行assert语句抛出指定异常,其中msg可以自定义
序号 断言方法 描述
1 assertEqual(arg1, arg2, msg=None) 验证arg1=arg2,不等则false并抛出异常
2 assertNotEqual(arg1, arg2, msg=None) 验证arg1 != arg2, 相等则false并抛出异常
3 assertTrue(expr, msg=None) 验证expr是true,如果为false,则false并抛出异常
4 assertFalse(expr,msg=None) 验证expr是false,如果为true,则false并抛出异常
5 assertIn(arg1, arg2, msg=None) 验证arg1是arg2的子串,不是则false并抛出异常
6 assertNotIn(arg1, arg2, msg=None) 验证arg1不是arg2的子串,是则false并抛出异常
7 assertIsInstance(obj, cls, msg=None) 验证obj是cls的实例,不是则false并抛出异常
8 assertNotIsInstance(obj, cls, msg=None) 验证obj不是cls的实例,是则false并抛出异常
9 assertIsNone(expr, msg=None) 验证expr是None,不是则false并抛出异常
10 assertIsNotNone(expr, msg=None) 验证expr不是None,是则false并抛出异常
11 assertLess(arg1, arg2, msg=None) 验证arg1<arg2 , 如果大于等于则false并抛出异常
12 assertLess(arg1, arg2, msg=None) 验证arg1<arg2, 如果大于则false并抛出异常
13 assertDictEqual(dic1, dic2, msg=None) 验证字典dic1和字典dic2是否相等,如果不等则false并抛出异常
使用时机:
我们什么时候应该使用断言呢?如果没有特别的目的,断言应该用于如下情况:
防御性的编程
在代码开始添加注释是个好的开端,但是人们都不太喜欢读和更新这些注释,这些注释会很快变得过时。但对于断言,我们可以同时对这块代码编写文档,如果这些断言被违反了,会直接引起一个简单而又直接的失败。
运行时对程序逻辑的检测
合约性检查(比如前置条件,后置条件)
在用例执行前后判断是否对环境造成影响,即条件的前后值是否发生了改变。
程序中的常量
|
|