SSブログ

コードカバレッジ気にしたらコードがひん曲がった [プログラム]

VS 2008のテストの,コードカバレッジ機能使って,未テスト箇所を作らないようにしていったのですが……。

Enum testValue = null;
foreach (Enum enumValue in Enum.GetValues(type))
{
    testValue = worker.DynamicInvoke(value, enumValue, testValue);
}

なんてコードで未テスト箇所が2箇所発生。 ちなみに,typeは任意のEnum型 (Enum型の引数valueに対して,GetType()で取得した),workerはLambdaExpression.Compileの結果。

コメントアウトしながら探すと,どうもforeach自体が問題っぽい。 foreachはIDisposableとか,色々中でやっているからなぁ,とか思いつつ,強制的に未テスト箇所を潰してやれとばかりに,できあがったコードが……。

Enum testValue = null;
foreach (Enum enumValue in (Enum.GetValues(type) as IEnumerable).OfType<Enum>())
{
    testValue = worker.DynamicInvoke(value, enumValue, testValue);
}

何かを間違えた気がしてなりません……。 というか,foreachの中で未テスト箇所作られても困るのですが……。


コメント(0)  トラックバック(0) 

コメント 0

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

VS2008のテスト機能を試すXNA GS 3.0 ブログトップ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。