Ich habe Code, wo assertRaises eine Ausnahme auslöst, wenn assertRaises fehlschlägt. Ich dachte, dass, wenn assertRaises fehlschlägt, der Test fehlschlagen würde und ich am Ende einen Bericht erhalten würde, der besagt, dass der Test fehlgeschlagen ist. Ich habe nicht erwartet, dass die Ausnahme ausgelöst wird. Unten ist mein Code. Ich mache etwas falsch? Ich benutze Python 2.6.2.python unittest assertRaises löst Ausnahme aus, wenn assertRaises fehlschlägt
import unittest
class myClass:
def getName(self):
raise myExcOne, "my exception one"
#raise myExcTwo, "my exception two"
#return "a"
class myExcOne(Exception):
"exception one"
class myExcTwo(Exception):
"exception two"
class test_myClass(unittest.TestCase):
def setUp(self):
self.myClass = myClass()
def testgetNameEmpty(self):
#self.assertRaises(myExcOne,self.myClass.getName)
#self.assertRaises(myExcTwo,self.myClass.getName)
try:
self.assertRaises(myExcTwo,self.myClass.getName)
except Exception as e:
pass
if __name__ == "__main__":
#unittest.main()
suite = unittest.TestLoader().loadTestsFromTestCase(test_myClass)
unittest.TextTestRunner(verbosity=2).run(suite)
Was meinen Sie konkret mit "Assert Fails"? Können Sie einen Stacktrace oder eine Fehlermeldung posten? –
Ich habe das Dokument erneut gelesen und eine Ausnahme ausgelöst, wenn assertRaises fehlschlägt, ist das erwartete Verhalten. Ich habe missverstanden, wie das Werkzeug funktioniert. Ich habe vergessen, dies im vorherigen Post zu erwähnen. Wenn ich die Ausnahme abfange, sagt der Bericht, dass der Test bestanden hat, obwohl dies nicht der Fall war. Ich habe meinen Code auf –