パラメータが null の場合は常に ArgumentNullExceptions と ArgumentExceptions をスローすることで、不正な入力から保護されている複数のパラメータを持つメソッドがあります。
したがって、これをテストするには 2 つの明白な方法があります。
- [ExpectedException] 属性を使用して、パラメーターごとに 1 つのテスト
- 複数の try{} catch ブロックを使用して、すべてのパラメーターに対して 1 つのテストを行う
try catch は次のようになります。
try
{
controller.Foo(null, new SecondParameter());
Assert.Fail("ArgumentNullException wasn't thrown");
} catch (ArgumentNullException)
{}
ちょっとした問題で。テストに合格した場合、Assert.Fail は呼び出されないため、カバーされていないテスト コードとして (NCover によって) 強調表示されます。
テスト コードではなく、100% カバーしたいビジネス コードであるため、これは実際には問題ではないことはわかっています。複数の Exception スロー呼び出しをデッド LoC なしで 1 つのテストケースに圧縮する方法があるかどうか、まだ興味がありますか?