《基于Python的全栈自动化测试》之unittest.TestCase(二)--- 断言assert

 断言:

    接着上篇,用例里需要用到断言,来验证实际结果是否符合预期结果,前面有讲过,unittest.TestCase 有封装好的断言方法,我们的测试类继承了 TestCase 这个父类,所以我们可以直接在测试用例里调用断言 assertEqual 方法,示例如下:

import unittest
from class_13.math import Math

class TestMath(unittest.TestCase):
    """Math的测试类"""
    def test_add(self):  # 测试加法
        result = Math(15, 30).add()
        expect = 45
        self.assertEqual(result, expect)
        print('加法用例执行完毕!')

    def test_sub(self):  # 测试减法
        result = Math(15, 30).sub()
        expect = 444
        self.assertEqual(result, expect)
        print('减法用例执行完毕!')

    def test_multiply(self):  # 测试乘法
        result = Math(15, 30).multiply()
        expect = 450
        self.assertEqual(result, expect)
        print('乘法用例执行完毕!')

    def test_divide(self):  # 测试除法
        result = Math(15, 30).divide()
        expect = 0.5
        self.assertEqual(result, expect)
        print('除法用例执行完毕!')

执行结果:

可以看到,执行了4条测试用例,通过了4条,执行所用时间0.003s。

注意测试用例的实行顺序,并不是按照用例的位置上下顺序来执行的,而是以测试用例的名字的首字母在ASCII编码的顺序来执行,如首字母相同,则用第二字字母排序。

下面我们在用个失败的用例来看看断言的作用:

import unittest
from class_13.math import Math

class TestMath(unittest.TestCase):
    """Math的测试类"""
    def test_add(self):  # 测试加法
        result = Math(15, 30).add()
        expect = 0
        self.assertEqual(result, expect)

执行结果:

执行失败,报错信息是断言错误: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!!!

发布了44 篇原创文章 · 获赞 23 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/waitan2018/article/details/85388761