IntelliTest/Pex の第 1 のルールは、コード カバレッジを拡大しようとすることです。すべてのステートメントがカバーされている場合、Pex は停止します。
テスト メソッドなど、x=2 の場合にのみカバーされるコードを追加する方法は多数あります。これは私のために働いた最も簡単なものかもしれません:
[PexMethod]
public int bla([PexAssumeUnderTest]Class1 target, int x)
{
if(x == 2)
{
PexAssert.ReachEventually();
}
int result = target.bla(x);
return result;
// TODO: add assertions to method Class1Test.bla(Class1, Int32)
}
探索結果ウィンドウに次のように表示されます。
x result
0 0
2 4
Pex ですべてのデフォルト パラメーターのテスト ケースを自動的に生成する方法を知りません。
実際の製品コードでは、コードでデフォルト値が使用される可能性が非常に高いため、この問題に頻繁に遭遇することはありません。
また、すべてのコード パスが Pex でカバーされている場合、既定値を使用するかどうかは本当に問題になるのでしょうか?
値を指定して、または指定せずに「bla」を呼び出すメソッドをテストすることは、おそらくより重要です。