Bir istisna ortaya çıkarılan bir deneme sınaması nasıl yazılacağını anlamaya çalışıyorum.inlineCallbacks kullanarak deneme sürümünde assertRaises nasıl kullanılır
Şu anda test etmek için 2 basit yönteme sahibim (başarı ve başarısızlık). Her bir yöntem, daha önce geri arama veya errback olmuş bir ertelenmiş değeri döndürür. Başarı yöntemini test etmek iyi çalışıyor. Hata yöntemini test ederken bir istisnanın ortaya çıktığını (assertRaises kullanarak) ileri sürmeyi beklerim.
test durumu başarısız olur ve ben olsun Ancak:
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)
ben test_failure doğru bir yaklaşım kullanıyor muyum şu şekildedir:
twisted.trial.unittest.FailTest: ConnectionRefusedError not raised (<Deferred at 0x920e28c current result: <twisted.python.failure.Failure <class 'twisted.internet.error.ConnectionRefusedError'>>> returned)
kodudur? Denemeyi kullanabilirim ... çağrıyı self.o.failure'a yakalamak, ama bu yaklaşımın assertRaises'i kullanmak kadar iyi olduğunu sanmıyorum. yerine
Teşekkürler, tam da aradığım şey buydu! –