Ho il codice in cui assertRaises genera un'eccezione quando AssertRaises fallisce. Ho pensato che se assertRaises fallisse, il test fallirebbe e alla fine avrò un rapporto che dice che il test fallisce. Non mi aspettavo che l'eccezione venisse lanciata. Di seguito è il mio codice. Sto facendo qualcosa di sbagliato? Sto usando Python 2.6.2.python unittest assertRaises genera un'eccezione quando assertRaises fallisce
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)
cosa intendete per "asserire fallito"? Puoi pubblicare uno stacktrace o un messaggio di errore? –
Rileggo il documento e lancio un'eccezione quando assertRaises non riesce è il comportamento previsto. Ho frainteso come funziona lo strumento. Ho dimenticato di dirlo nel post precedente. Se rilevo l'eccezione, il rapporto mi dice che il test è stato superato anche se non lo è stato. Ho aggiornato il mio codice su –