例外テストの落とし穴

「ここで例外が飛ぶ」ことをテストしたいけど例外の型を明示するのが面倒なとき、

[Test]
public ExceptionTest() {
  try {
    ThrowException(); //ここで例外が飛ぶはず
    Assert.Fail(); //……なのでここは通らない
  }catch{}
}

というコードを書いていたのだけど、Assertって失敗したとき例外投げるのね。
NUnitの例外もすべて握りつぶす駄目テストだった。無意味…… ちゃんとExpectedExceptionを使いましょうという話。