Tengo la siguiente comprobación de código de prueba para una excepción alzar en una función. Espero que pase la prueba, pero en su lugar se indica una falla. Aquí está el código de prueba:assertRaises falla, incluso el invocable aumenta la excepción requerida (python, unitest)
import unittest
# define a user-defined exception
class MyException(Exception):
def __str__(self):
return repr("ERROR: Just raised my exception!")
# this is my main class with a method raising this exception
class MyMainObject(object):
def func(self):
raise MyException()
# the test class
class TestConfig(unittest.TestCase):
def test_1(self):
other = MyMainObject()
self.assertRaises(MyException, other.func())
# calling the test
if __name__ == '__main__':
unittest.main()
Cuando other.func()
se llama en la sentencia assert, MyException
se eleva (se puede comprobar fácilmente). Por lo tanto, la prueba assertRaises
debe pasar la prueba, como other.func()
failes con MyException
, PERO:
....
MyException: 'ERROR: Just raised my exception!'
----------------------------------------------------------------------
Ran 1 test in 0.001s
FAILED (errors=1)
no veo algo malo, por lo que agradecería alguna entrada en este problema.
¡Debería notar que es un error, no una falla! su excepción ni siquiera fue atrapada. –