オーバーロードはこれを自動的に行います。テストとして、このテストメソッドを作成して、出力がどうなるかを確認しました。
[TestMethod]
public void Test()
{
Assert.AreEqual(true, false, "Failed on the following test case: AB");
}
エラーメッセージの出力は次のとおりです。Assert.AreEqual failed. Expected:<True>. Actual:<False>. Failed on the following test case: AB
メッセージ パラメータは、既定のメッセージに既に追加/結合されています。
あなたの場合、テストキーを取得したいだけの場合、テストは次のようになります。
foreach (var testCase in testCases)
{
Assert.AreEqual(testCase.Value, myObj.myMethod(testCase.Key),
"Failed on the following test case: " + testCase.Key.ToString());
}
また、テスト ケースごとに独自のカスタム メッセージが必要な場合は、カスタム エラー メッセージを testCase クラスに移動するのが理にかなっています。各オブジェクトの作成の一環として、これら 3 つのプロパティを指定できます。
testCase.Value = true;
testCase.Key = "AB";
testCase.FailureMessage = "Failed on the following test case: AB";
このタイプの構造により、指定したメッセージを testCase のすべてのインスタンスに追加できます。そうすることで、単体テストは次のようになります。
foreach (var testCase in testCases)
{
Assert.AreEqual(testCase.Value, myObj.myMethod(testCase.Key),
testCase.FailureMessage));
}
例の出力は次のようになります。Assert.AreEqual failed. Expected:<True>. Actual:<False>. Failed on the following test case: AB