如何对失败的测试进行单元测试?

时间:2019-09-25 23:54:09

标签: python-3.x unit-testing tdd nose

我正尝试着自己开始进行鼻子测试和TDD。据我了解,单元测试的目的是测试功能的尽可能多的功能。因此,我想做的就是在函数中添加无效的参数,并确认不能这样做。例如,我正在编写一个简单的添加函数

def addBowling(x, y):
    try:
        return x + y
    except TypeError:
        print('Exception occured: invalid types')

因此,对于此功能,我希望输入“ a”引发异常。在鼻子测试中,我想像这样输入“ a”。

def testAddNumbers():
    assert addBowling(3, 4) == 7
    assert addBowling(5, 0) == 5
    assert addBowling('a', 0) == TypeError

我想有两个将通过的断言和一个将失败的断言。当我运行此测试时,它告诉我1个测试失败。我不确定我的理解是否正确,但是我想让此测试通过,因为这对我的功能来说是正确的功能。

有关如何获得所需结果的任何指导?

1 个答案:

答案 0 :(得分:0)

多亏了一位有帮助的评论员,我才知道断言加薪是我一直在寻找的东西。我重构了函数,所以现在所做的就是在测试中添加并使用assert引发,就像这样。

def addBowling(x, y):
        return x + y

def testAddNumbers():
    assert addBowling(3, 4) == 7
    assert addBowling(5, 0) == 5
    assert_raises(TypeError, addBowling, 'a', 2)

别忘了从鼻子导入工具。assert_raises!