私のテストでは、DB への接続を使用してい@Before
ます@After
。
私の質問は、テスト中に例外がスローされた場合はどうなりますか?
どうすれば接続を閉じることができますか?
finally
try と catch ブロックの後に来るものと同等のものを探しています。
@After
あなたが望むことをします。そのドキュメントによると:
すべての @After メソッドは、Before メソッドまたは Test メソッドが例外をスローした場合でも実行されることが保証されています。
(これは直感的に理にかなっています。なぜなら、テスト メソッドはtry
例外をキャッチしてテストの失敗に変換するブロックにラップされていると想像しているからです。したがって、テストは失敗し、ティアダウン ブロックが実行されます。)
Error
がスローされた場合にメソッドが実行されることを指定していないことに注意してください。通常は@After
メソッドを使用してテスト状態を維持するだけですが、この場合はそれ以上テストが実行されないため、問題は発生しません。絶対にクリーンアップする必要があるリソース (ネイティブ フックなど) をテストで使用する場合はtry-finally
、テスト メソッド自体のブロックでこれを行うのが最善です。