我是单元测试的新手,我正在尝试测试一个添加两个数字的函数。如果我想测试正确的结果,程序工作正常,但是当我想让函数失败测试时,我得到一个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
答案 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
模块将显示错误。这是该框架的使用方式。