コレクションから合計を計算する簡単な方法があります。
public void MethodToTest(Collection<int> collection)
{
int sum = 0;
foreach (int value in collection)
{
sum += value;
}
}
目標は、コマンド ラインで実行される opencoverage ツールを使用して、ブランチ カバレッジで 100% を取得することです。メソッド MethodToTest を呼び出す単体テストも取得しました。
[TestMethod]
public void TestMethodToTest()
{
BomProviderMock mock = new BomProviderMock();
BomManager bomManager = new BomManager(mock);
List<int> list = new List<int>();
for (int i = 0; i <= Int16.MaxValue; i++)
{
list.Add(i);
}
// Firts attempt with a non empty collection
bomManager.MethodToTest(new Collection<int>(list));
// Second attempt with an empty collection
bomManager.MethodToTest(new Collection<int>());
}
ツール opencover を使用した後、メソッド MethodToTest は 80% の分岐カバレッジを獲得しました。私の質問は、foreach ループがブランチ カバレッジに影響を与えるかどうかです。もしそうなら、この単純なコードで 100% を得るにはどうすればよいでしょうか?