Unittest之断言

前言

Python unintest单元测试框架提供了一整套内置的断言方法

  • 如果断言失败,则抛出一个AssertionError,并标识该测试为失败状态
  • 如果异常,则当做错误来处理
  • 注意:以上两种方式的区别
  • 如果成功,则标识该测试为成功状态

下面我们看下在unittest框架中定义了哪几类断言方法:

  1. 基本的Boolean断言,即:要么True,要么False的验证;
  2. 简单比较断言,例如比较a,b两个变量的值;
  3. 复杂断言;
1、基本断言方法

基本的断言方法提供了测试结果是True还是False。所有的断言方法都有一个msg参数,如果指定msg参数的值,则将该信息作为失败的错误信息返回。

序号断言语法断言描述
1assertEqual(arg1, arg2, msg=None)验证arg1=arg2,不等则fail
2assertNotEqual(arg1, arg2, msg=None)验证arg1 != arg2, 相等则fail
3assertTrue(expr, msg=None)验证expr是true,如果为false,则fail
4assertFalse(expr,msg=None)验证expr是false,如果为true,则fail
5assertIs(arg1, arg2, msg=None)验证arg1、arg2是同一个对象,不是则fail
6assertIsNot(arg1, arg2, msg=None)验证arg1、arg2不是同一个对象,是则fail
7assertIsNone(expr, msg=None)验证expr是None,不是则fail
8assertIsNotNone(expr, msg=None)验证expr不是None,是则fail
9assertIn(arg1, arg2, msg=None)验证arg1是arg2的子串,不是则fail
10assertNotIn(arg1, arg2, msg=None)验证arg1不是arg2的子串,是则fail
11assertIsInstance(obj, cls, msg=None)验证obj是cls的实例,不是则fail
12assertNotIsInstance(obj, cls, msg=None)验证obj不是cls的实例,是则fail
2、比较断言

unittest框架提供的第二种断言类型就是比较断言

下面我们看下各种比较断言:

  • assertAlmostEqual (first, second, places = 7, msg = None, delta = None)

验证first约等于second。
palces: 指定精确到小数点后多少位,默认为7

  • assertNotAlmostEqual (first, second, places, msg, delta)

验证first不约等于second。
palces: 指定精确到小数点后多少位,默认为7
注: 在上述的两个函数中,如果delta指定了值,则first和second之间的差值必须≤delta

  • assertGreater (first, second, msg = None)

验证first > second,否则fail

  • assertGreaterEqual (first, second, msg = None)

验证first ≥ second,否则fail

  • assertLess (first, second, msg = None)

验证first < second,否则fail

  • assertLessEqual (first, second, msg = None)

验证first ≤ second,否则fail

  • assertRegexpMatches (text, regexp, msg = None)

验证正则表达式regexp搜索匹配的文本text。
regexp:通常使用re.search()

  • assertNotRegexpMatches (text, regexp, msg = None)

验证正则表达式regexp搜索不匹配的文本text。
regexp:通常使用re.search()

3、复杂断言
序号断言语法断言描述
1assertListEqual (list1, list2, msg = None)验证列表list1、list2相等,不等则fail,同时报错信息返回具体的不同的地方
2assertTupleEqual (tuple1, tuple2, msg = None)验证元组tuple1、tuple2相等,不等则fail,同时报错信息返回具体的不同的地方
3assertSetEqual (set1, set2, msg = None)验证集合set1、set2相等,不等则fail,同时报错信息返回具体的不同的地方
4assertDictEqual (expected, actual, msg = None)验证字典expected、actual相等,不等则fail,同时报错信息返回具体的不同的地方
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值