前言
在测试用例中,执行完测试用例后,最后一步是判断测试结果是pass还是fail,自动化测试脚本里面一般把这种生成测试结果的方法称为断言(assert)。
用unittest组件测试用例的时候,断言的方法还是很多的,下面介绍几种常用的断言方法:assertEqual、assertIn、assertTrue
基本断言方法
基本的断言方法提供了测试结果是True还是False。所有的断言方法都有一个msg参数,如果指定msg参数的值,则将该信息作为失败的错误信息返回。
| 序号 | 断言方法 | 断言描述 |
|---|---|---|
| 1 | assertEqual(arg1, arg2, msg=None) | 验证arg1=arg2,不等则fail |
| 2 | assertNotEqual(arg1, arg2, msg=None) | 验证arg1 != arg2, 相等则fail |
| 3 | assertTrue(expr, msg=None) | 验证expr是true,如果为false,则fail |
| 4 | assertFalse(expr,msg=None) | 验证expr是false,如果为true,则fail |
| 5 | assertIs(arg1, arg2, msg=None) | 验证arg1、arg2是同一个对象,不是则fail |
| 6 | assertIsNot(arg1, arg2, msg=None) | 验证arg1、arg2不是同一个对象,是则fail |
| 7 | assertIsNone(expr, msg=None) | 验证expr是None,不是则fail |
| 8 | assertIsNotNone(expr, msg=None) | 验证expr不是None,是则fail |
| 9 | assertIn(arg1, arg2, msg=None) | 验证arg1是arg2的子串,不是则fail |
| 10 | assertNotIn(arg1, arg2, msg=None) | 验证arg1不是arg2的子串,是则fail |
| 11 | assertIsInstance(obj, cls, msg=None) | 验证obj是cls的实例,不是则fail |
| 12 | assertNotIsInstance(obj, cls, msg=None) | 验证obj不是cls的实例,是则fail |
一、简单案例
1.下面写了4个case,其中第四个是执行失败的
2.执行结果如下
二、自定义异常
1.以assertEqual为例分析:
2.翻译:如果两个对象不能相等,就返回失败,相当于return: first==second
3.这里除了相比较的两个参数first和second,还有第三个参数msg=None,这个msg参数就是遇到异常后自定义输出信息

三、unittest常用的断言方法
1.assertEqual(self, first, second, msg=None)
–判断两个参数相等:first == second
2.assertNotEqual(self, first, second, msg=None)
–判断两个参数不相等:first != second
3.assertIn(self, member, container, msg=None)
–判断是字符串是否包含:member in container
4.assertNotIn(self, member, container, msg=None)
–判断是字符串是否不包含:member not in container
5.assertTrue(self, expr, msg=None)
–判断是否为真:expr is True
6.assertFalse(self, expr, msg=None)
–判断是否为假:expr is False
7.assertIsNone(self, obj, msg=None)
–判断是否为None:obj is None
1.下面是unittest框架支持的所有断言方法,有兴趣的同学可以慢慢看。
转:https://www.cnblogs.com/yoyoketang/p/6691270.html
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/225939.html原文链接:https://javaforall.net
