例外が発生したことを主張するトライアルテストケースを作成する方法を理解しようとしています。
現在、テストする簡単な方法が2つあります(成功と失敗)。各メソッドは、すでにコールバックまたはエラーバックされた遅延を返します。成功方法のテストは正常に機能します。失敗メソッドをテストするとき、例外が発生したことをアサートできると期待しています(assertRaisesを使用)。
ただし、テストケースは失敗し、次のようになります。
twined.trial.unittest.FailTest:ConnectionRefusedErrorは発生しません(<0x920e28cで延期されました現在の結果:<twisted.python.failure.Failure <class'twisted.internet.error.ConnectionRefusedError' >>>が返されました)
コードは次のとおりです。
ツイスト.trial.unittestからインポートTestCase twint.internet.deferからinlineCallbacksをインポートし、成功し、失敗します ツイスト.internet.errorからインポートConnectionRefusedError クラスMyObject: def success(self): 成功を返す(True) def failure(self): fail(ConnectionRefusedError())を返します クラスTestErrBack(TestCase): def setUp(self): self.o = MyObject() @inlineCallbacks def test_success(self): 結果=yieldself.o.success() self.assertTrue(結果) @inlineCallbacks def test_failure(self): #このテストケースは失敗しています! self.assertRaises(ConnectionRefusedError、self.o.failure)を生成します
test_failureで正しいアプローチを使用していますか?私はtry...catchを使用してself.o.failureの呼び出しを回避できますが、このアプローチはassertRaisesを使用するほど良いとは思いません。