例外テストの落とし穴
「ここで例外が飛ぶ」ことをテストしたいけど例外の型を明示するのが面倒なとき、
[Test] public ExceptionTest() { try { ThrowException(); //ここで例外が飛ぶはず Assert.Fail(); //……なのでここは通らない }catch{} }
というコードを書いていたのだけど、Assertって失敗したとき例外投げるのね。
NUnitの例外もすべて握りつぶす駄目テストだった。無意味…… ちゃんとExpectedExceptionを使いましょうという話。