コードカバレッジ気にしたらコードがひん曲がった [プログラム]
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の中で未テスト箇所作られても困るのですが……。
2008-10-03 03:08
コメント(0)
トラックバック(0)
コメント 0