Ich versuche, für eine Ausnahme zu testen.Unit Test Problem mit assertRaises
ich habe:
def test_set_catch_status_exception(self):
mro = self.mro
NEW_STATUS = 'No such status'
self.assertRaises(ValueError,mro.setStatus(NEW_STATUS))
Ich erhalte die folgende Fehlermeldung:
======================================================================
ERROR: test_set_catch_status_exception (__main__.TestManagementReviewGoalGetters)
----------------------------------------------------------------------
Traceback (most recent call last):
File "test_ManagementReviewObjective.py", line 68, in test_set_catch_status_exception
self.assertRaises(ValueError,mro.setStatus(NEW_STATUS))
File "/Users/eric/Dropbox/ManagementReview.py", line 277, in setStatus
raise ValueError('%s is not in the list of allowed statuses: %s' % (status,LIST_OF_STATUSES))
ValueError: No such status is not in the list of allowed statuses: ['Concern or Delay', 'On Track', 'Off Track/Needs Attention']
----------------------------------------------------------------------
Dank
Das tat es! Vielen Dank. :) –
@Eric: Kein Problem. – unutbu
Ich benutze Python 3.3 Interpreter in pycharm IDE. Was ist, wenn ich Argumente an die zu testende Funktion übergeben und eine Nachricht einfügen möchte, falls der gewünschte Fehler nicht auftritt? Beispiel - 'self.assertRaises (ValueError, person.set_age_method, -10," Fehler: Alter der Person kann nicht negativ sein. ")' Damit bekomme ich eine Ausnahme: 'set_age_method nimmt 2 Positionsargumente, aber 3 wurden gegeben'. Wie behebe ich das? Übrigens, die Dokumente für diese Behauptung sagen Ihnen nicht klar, wie es geht. https://docs.python.org/3/library/unittest.html#unittest.TestCase.assertRaises. Was ist ** kwds? – testerjoe2