Próbuję dowiedzieć się, jak napisać próbny przypadek testowy, który zapewnia zgłoszenie wyjątku.Jak używać assertRaises w próbnym teście testowym za pomocą inlineCallbacks
Obecnie mam 2 proste metody testowania (sukces i porażka). Każda metoda zwraca wartość odroczoną, która już została wywołana przez funkcję zwrotną lub errback. Testowanie metody sukcesu działa dobrze. Podczas testowania metody niepowodzenia oczekuję, że będę w stanie stwierdzić, że wyjątek został podniesiony (przy użyciu assertRaises).
Jednak w przypadku niepowodzenia testu i uzyskać:
twisted.trial.unittest.FailTest: ConnectionRefusedError not raised (<Deferred at 0x920e28c current result: <twisted.python.failure.Failure <class 'twisted.internet.error.ConnectionRefusedError'>>> returned)
Kod jest w następujący sposób:
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)
używam odpowiedniego podejścia w test_failure? Mogę użyć try ... złapać połączenie do self.o.failure, ale nie sądzę, że to podejście jest tak dobre, jak przy użyciu assertRaises.
Dzięki, właśnie tego szukałem! –