Ich erstelle Tests für ein Python-Projekt. Die normalen Tests funktionieren gut, aber ich möchte testen, ob meine Funktion in einer bestimmten Bedingung eine selbst definierte Ausnahme auslöst. Daher möchte ich assertRaises (Exception, Function) verwenden. Irgendwelche Ideen?Fehler beim Testen der Erhöhung von selbst definierten Ausnahmen (mithilfe von assertRaises())
Die Funktion, die die Ausnahme aufwirft, ist:
def connect(comp1, comp2):
if comp1 == comp2:
raise e.InvalidConnectionError(comp1, comp2)
...
Die Ausnahme ist:
class InvalidConnectionError(Exception):
def __init__(self, connection1, connection2):
self._connection1 = connection1
self._connection2 = connection2
def __str__(self):
string = '...'
return string
Die Testmethode ist die folgende:
class TestConnections(u.TestCase):
def test_connect_error(self):
comp = c.PowerConsumer('Bus', True, 1000)
self.assertRaises(e.InvalidConnectionError, c.connect(comp, comp))
Jedoch habe ich die folgende Fehlermeldung erhalten :
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>
Die '__init__' Methode' InvalidConnectionError' als '__int__' falsch geschrieben. – DeepSpace
Vielen Dank, dass Sie darauf hingewiesen haben. Allerdings war es nur falsch im Code hier, nicht in meinen eigentlichen Dateien. Ich werde meine Frage bearbeiten. –