2015-10-04 72 views
2

我正在嘗試通過引發錯誤時通過的測試用例。雖然這個班級提出了自定義錯誤。在Python中進行單元測試,如何檢查自定義錯誤消息

下面是原始類中引發的錯誤。

else: 
      raise MultipleObjectsReturned("Multiple videos met this criteria.") 

現在當我試圖捕捉它,它會返回錯誤。

def test_get(self): 

     with self.assertRaises('MultipleObjectsReturned'): 
      self.yt.get() 

錯誤:

File "C:\Python27\lib\unittest\case.py", line 117, in __exit__ 
    if not issubclass(exc_type, self.expected): 
TypeError: issubclass() arg 2 must be a class or tuple of classes 

我怎樣才能使它趕上自定義錯誤消息。

回答

0

首先看你的模塊,它們應該在定義了MultipleObjectsReturned異常的地方。嘗試尋找下面的東西。這只是一個例外,因爲它從類Exception繼承。

class MultipleObjectsReturned(Exception): 

現在你需要繼承這個特殊的異常,讓你的模塊知道它。

from somewhere import MultipleObjectsReturned 

一旦你成功導入可以養它,因爲它是一個自定義異常,但因爲它是一類不使用它作爲一個字符串。

def test_get(self): 
     with self.assertRaises(MultipleObjectsReturned): 
      self.yt.get() 

注意刪除了引號。

+0

是的我沒有導入這個異常。現在工作。謝謝 – Tan

相關問題