Estoy tratando de averiguar cómo escribir un caso de prueba de prueba que afirma que se produce una excepción.Cómo utilizar assertRaises en un caso de prueba de prueba utilizando inlineCallbacks
Actualmente tengo 2 métodos simples para probar (éxito y fracaso). Cada método devuelve un diferido que ya ha sido devuelto o revertido. Probar el método de éxito funciona bien. Al probar el método de falla, espero ser capaz de afirmar que se produjo una excepción (usando assertRaises).
Sin embargo, el caso de prueba falla y me sale:
twisted.trial.unittest.FailTest: ConnectionRefusedError not raised (<Deferred at 0x920e28c current result: <twisted.python.failure.Failure <class 'twisted.internet.error.ConnectionRefusedError'>>> returned)
El código es el siguiente:
from twisted.trial.unittest import TestCase from twisted.internet.defer import inlineCallbacks, succeed, fail from twisted.internet.error import ConnectionRefusedError class MyObject: def success(self): return succeed(True) def failure(self): return fail(ConnectionRefusedError()) class TestErrBack(TestCase): def setUp(self): self.o = MyObject() @inlineCallbacks def test_success(self): result = yield self.o.success() self.assertTrue(result) @inlineCallbacks def test_failure(self): # this test case is failing ! yield self.assertRaises(ConnectionRefusedError, self.o.failure)
estoy usando el enfoque correcto en test_failure? Puedo usar try ... tomar la llamada a self.o.failure, pero no creo que este enfoque sea tan bueno como usar assertRaises.
¡Gracias, eso es exactamente lo que estaba buscando! –