Перегрузка сделает это за вас автоматически. В качестве теста я сделал этот метод испытания, чтобы увидеть, что результат будет:
[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. В рамках создания каждого из объектов можно задать эти три свойства, то:
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
Cant вы конкатенации 2 строки? – Blachshma
Ошибка Assert.AreEqual не является статической. Я хотел бы использовать все, что выходит из рамки. –