10

例外がキャッチされたことを確認する方法はありますか? 私のメソッドでは、例外をキャッチする必要がある状況があり、テストでは例外が実際にキャッチされたことを確認したいということです。

4

4 に答える 4

8

答えはノーだと思います。おそらく、いくつかの激しい反射論争でそれをやってのけることができますが、もしそうなら、それはあなたの時間の価値があるとは思いません.

しかし、(あなたのメソッドを見なくても)おそらくあなたのメソッドを完全にカバーできると思います:

  • 例外をキャッチした後にメソッドがアクションを実行する場合は、それらのアクションが発生したことをアサートまたは検証します。

  • 例外をキャッチした後にアクションが発生しない場合は、発生するはずだったが例外によって中断されたアクションが発生しなかったことをアサートまたは検証します。

  • 最後に、(繰り返しますが、あなたのメソッドが表示されないため、何を扱っているのか正確にはわかりません)メソッドが無効で、例外をキャッチした後に何も起こらず、ロジックの最後の行が例外をスローできる場合、メソッドがブール値を返すようにすることを検討してください。例外がキャッチされた場合は false を返し、それ以外の場合は true を返します。次に、テストで、例外をスローしてキャッチするシナリオを作成し、メソッドが false を返すことをテストします。

于 2013-07-09T14:30:44.010 に答える
0

例外をスローする要素をモックして、例外をスローし、例外が発生しなかった場合に呼び出される他のメソッドへの呼び出しがないことを確認できる必要があります。

また、例外がスローされたときに状態が期待どおりであることを確認します。

于 2013-07-09T14:30:17.837 に答える