例外がスローされることを期待するユニットテスト
こう書くと Assert.Fail が実行されなくてカバレッジが低下する。
Hoge hoge = new Hoge(); try { hoge.Fuga(); Assert.Fail(); } catch (InvalidOperationException) { }
そこでこう書く
bool wasThrown = false; Hoge hoge = new Hoge(); try { hoge.Fuga(); } catch (InvalidOperationException) { wasThrown = true; } Assert.That(wasThrown, Is.True);
ExpectedExceptionAttribute は例外の発生場所を限定できないからあまり使わない。