1
我正在爲python項目創建測試。正常的測試工作得很好,但是我想測試一下,如果在某種情況下我的函數會引發一個自定義的異常。爲此我想使用assertRaises(Exception,Function)。有任何想法嗎?測試自定義異常引發時出錯(使用assertRaises())
是引發異常的功能是:
def connect(comp1, comp2):
if comp1 == comp2:
raise e.InvalidConnectionError(comp1, comp2)
...
唯一的例外是:
class InvalidConnectionError(Exception):
def __init__(self, connection1, connection2):
self._connection1 = connection1
self._connection2 = connection2
def __str__(self):
string = '...'
return string
的測試方法如下:
class TestConnections(u.TestCase):
def test_connect_error(self):
comp = c.PowerConsumer('Bus', True, 1000)
self.assertRaises(e.InvalidConnectionError, c.connect(comp, comp))
不過,我得到以下錯誤:
Error
Traceback (most recent call last):
File "C:\Users\t5ycxK\PycharmProjects\ElectricPowerDesign\test_component.py", line 190, in test_connect_error
self.assertRaises(e.InvalidConnectionError, c.connect(comp, comp))
File "C:\Users\t5ycxK\PycharmProjects\ElectricPowerDesign\component.py", line 428, in connect
raise e.InvalidConnectionError(comp1, comp2)
InvalidConnectionError: <unprintable InvalidConnectionError object>
InvalidConnectionError'的''的方法__init__'拼錯如'__int__'。 – DeepSpace
謝謝你指出這一點。然而,這只是在代碼錯誤,而不是在我的實際文件。我將編輯我的問題。 –