2017-02-14 90 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」和測試將通過。