AssertionError虽然尝试/除了使用Python进行单元测试

时间:2014-04-18 14:32:41

标签: python unit-testing

我是单元测试的新手,我正在尝试测试一个添加两个数字的函数。如果我想测试正确的结果,程序工作正常,但是当我想让函数失败测试时,我得到一个AssertionError,虽然我使用try / except来捕获该异常。我不知道我做错了什么。请有人指出这一点吗?

import unittest
import sumXY
from random import randint

class Test(unittest.TestCase):
        def test_add(self):
                for a in range(1,5):
                        x = 2
                        y = 3
                        z = 6
                        try:
                                self.assertEqual(sumXY.sum(x,y), z)
                                print "%d + %d = %d" % (x, y, z) + " -> PASSED"
                        except:
                                print "%d + %d = %d" % (x, y, z) + " -> FAILED"
                                pass

if __name__ == '__main__':
        unittest.main()

输出:

AssertionError: 5 != 6

我希望输出为:2 + 3 = 6 - > FAILED

1 个答案:

答案 0 :(得分:1)

为什么要在单元测试中放置自己的try ... except块?使用unittest模块的重点是为您提供这种机器。做这样的事情:

class Test(unittest.TestCase):
    def test_add(self):
        for a in range(1,5):
            x = 2
            y = 3
            z = 6
            self.assertEqual(sumXY.sum(x, y), z)

如果z不等于sum(x, y),则unittest模块将显示错误。这是该框架的使用方式。