単体テストを作成したなど、単体テストヘルパーの拡張メソッドがいくつかありIsNotEmpty(this string str)
ます。これらのテストの基本構造は、拡張メソッドが合格し、「良い」入力で期待される結果を返すことを確認するテストと、「悪い」入力で失敗例外がスローされることを確認するテストがあります。たとえば、上記のメソッドの失敗テストは次のようになります。
[TestMethod, Fails]
public void IsNotEmpty_Fails_On_Empty_String()
{
"".IsNotEmpty();
}
Fails
私が自分で書いた属性はどこにありますか?基本的にはのプロキシです[ExpectedException(typeof(AssertFailedException))]
。したがって、上記のテストの唯一の行で例外がスローされることを明示的に期待しているため、メソッドが完全に実行されることは期待していません。
しかし、ソリューションを右クリックして[Test with-> NCover]を選択すると、上記のようなすべてのメソッドで100%未満のコードカバレッジ*が得られ、末尾のブレースが赤で強調表示されます。
私がテスト方法が終了しないと言ったのに、なぜNCoverは私のテスト方法が終了しないと不平を言うのですか?
**)100%のコードカバレッジは必要ないと答えるすべての人のために:いいえ、私は100%のコードカバレッジを維持することについて特に心配していません。ただし、これらの場合、*重要なメソッドはリストに含まれていないものとして表示されるため、ツリーに完全にアクセスして、それがそれらだけであることを確認する必要があります。これが私がここで得ようとしている問題です。一般に100%のコードカバレッジではありません。