テスト中に、プロジェクトに固有の Assert ヘルパー関数がいくつかあります。たとえば、2 つの IEnumerables が同等かどうかを頻繁に確認する必要があります (順序に関してではなく、参照によってまったく同じ内容です)。したがって、これらの静的クラスを用意してください。例えば:
internal static class MyAssert
{
public static void AreEquivalent<T>(IEnumerable<T> enumerable1, IEnumerable<T> enumerable2)
{
bool val = false;
if (enumerable2 == null)
{
val = !enumerable1.Any();
} else {
var list1 = enumerable1.ToList();
var list2 = enumerable2.ToList();
val = (list1.Count == list2.Count && list1.Intersect(list2).Count() == list2.Count());
}
Assert.IsTrue(val);
}
}
次に、 を使用MyAssert.AreEquivalent(enumer1, enumer2);
して失敗すると、スタック トレース全体がヘルパー関数内に表示されます。私はそれを見逃したいので、開発者が来て assert のソースを見た場合、彼は MyAssert が失敗したことだけを見ますが、私のヘルパー関数内のどこに問題があったかはわかりません (彼はAssert.IsTrue(val))
.
で実行できることはわかっていますがAssert.IsTrue(MyCollHelper.AreEquivalent(enumer1, enumer2))
、これは前のものほど読みやすくありません。