2017-02-14 43 views
0

提出我有一个名为division功能。一个例外是在try块升起后,它越来越受except块捕获,所以我正在一个AssertionError而测试except块。我需要测试except块以将代码覆盖率提高到100%,并且我需要测试捕获的异常。我如何测试except块?Asse田:ZeroDivisionError不好玩

def division(a,b): 
    try: 
     print(a/b) 
    except ZeroDivisionError as ze: 
     print(ze) 

class TestDivision(unittest.TestCase): 
    def test_division(self): 

     self.assertRaises(ZeroDivisionError, division, 1, 0) 
+0

向我们展示追溯可能? –

+0

如果你只是通常测试'try'块,那么它的工作原理是什么? – WhatsThePoint

+0

您正在处理异常,所以它实际上从未被提出测试。 –

回答

2

有问题的功能是非可测试

它既不returns的值也不changes some object

将返回唯一一个例外是不是“ZeroDivisionError”,这是不可能的功能逻辑等。

所以不可能在不更改功能代码本身的情况下测试功能,并使其'TESTABLE'。

0

因为函数赶上ZeroDivisionError。 当A/B中提出的ZeroDivisionError,代码将打印EZ并返回None.Remove的“除了ZeroDivisionError”和测试将通过。