断言:
接着上篇,用例里需要用到断言,来验证实际结果是否符合预期结果,前面有讲过,unittest.TestCase 有封装好的断言方法,我们的测试类继承了 TestCase 这个父类,所以我们可以直接在测试用例里调用断言 assertEqual 方法,示例如下:
执行结果:
可以看到,执行了4条测试用例,通过了4条,执行所用时间0.003s。
注意测试用例的实行顺序,并不是按照用例的位置上下顺序来执行的,而是以测试用例的名字的首字母在ASCII编码的顺序来执行,如首字母相同,则用第二字字母排序。
下面我们在用个失败的用例来看看断言的作用:
执行结果:
执行失败,报错信息是断言错误:45 != 0
这就是断言的作用,assertEqual(a, b) 用来判断 a 是否等于 b,不等于就报错,抛出异常。
当然,断言不止assertEqual()一种方法,还有其他的断言方法。
更多的断言方法:
方法 | 描述 |
assertEqual(a,b) | 断言a和b是否 相等,相等 则测试用例通过 |
assertNotEqual(a,b) | 断言a和b是否 不等,不等 则测试用例通过 |
assertTrue(x) | 断言x是否为 True,是True 则测试用例通过 |
assertFalse(x) | 断言x是否为 False,是False 则测试用例通过 |
assertIs(a,b) | 断言a是否 是b,是 则测试用例通过 |
assertIsNot(a,b) | 断言a是否 不是b,不是 则测试用例通过 |
assertIsNone(x) | 断言x是否 为None,是None 则测试用例通过 |
assertIsNotNone(x) | 断言x是否 不是None,不是None 则测试用例通过 |
assertIn(a,b) | 断言a是否 在b中,在b中 则测试用例通过 |
assertNotIn(a,b) | 断言a是否 不在b中,不在b中 则测试用例通过 |
assertIsInstance(a,b) | 断言a是否 是b的一个实例,是 则测试用例通过 |
assertNotIsInstance(a,b) | 断言a是否 不是b的一个实例,不是 则测试用例通过 |
以上是我们常用的断言方法,当然还有更多的断言,如果需要的话,我们可以在unittest.TestCase类文件中查看!
END!!!