В настоящее время у меня есть много строк кода модульного теста, подобных этой
Assert.AreEqual(responseDetail1.ExternalICN, transaction1.Item2.ExternalICN);
По сути, есть много responseDetail1 и много responseDetail2 et c .. Поэтому я хочу вместо этого использовать метод
//call method passing in responseDetail1 or 2, 3 etc..
CheckResponseToTransactions(responseDetail1, transaction1);
Затем сам метод
public void CheckResponseToTransactions(ResponseDetail responseDetail, Transaction transaction)
{
// notice this is generic model of ResponseDetail and thus this is NOT going to work
Assert.AreEqual(responseDetail.ExternalICN, transaction.Item2.ExternalICN);
}
Как я могу исправить этот метод, чтобы он принимал многие определенные c объекты, которые имеют доступ к свойствам, которые мне нужно оценить?
Обновление - более полный пример
[TestMethod]
public void Can_Process_Response_With_Edits()
{
var responseDetail1 = responseDetails.SingleOrDefault(d => d.TransmissionTransactionId == transaction1.Item1.TransmissionTransactionId);
Assert.AreEqual(responseDetail1.ExternalICN, transaction1.Item2.ExternalICN);
Assert.AreEqual(responseDetail1.EncounterId, transaction1.Item2.EncounterId);
}
Следующий метод тестирования
[TestMethod]
public void Can_Process_Response_Edits2()
{
var responseDetail2 = responseDetails.SingleOrDefault(d => d.TransmissionTransactionId == transaction1.Item1.TransmissionTransactionId);
Assert.AreEqual(responseDetail2.ExternalICN, transaction2.Item2.ExternalICN);
Assert.AreEqual(responseDetail2.EncounterId, transaction2.Item2.EncounterId);
}
Таким образом, я хочу, чтобы несколько методов тестирования не выполняли одно и то же, и я хотел бы иметь метод I вызовите
// example of calling method
CheckResponseToTransactions(responseDetail1, transaction1);
Затем сам метод, который я не знаю, как передать, и использовать определенные c типы
public void CheckResponseToTransactions(ResponseDetail responseDetail, Transaction transaction)
{
Assert.AreEqual(responseDetail.ExternalICN, transaction.Item2.ExternalICN);CheckResponseToTransactions(responseDetail1, transaction1); Assert.AreEqual(responseDetail1.EncounterId, transaction1.Item2.EncounterId);
Assert.AreEqual(responseDetail1.VoucherNumber, transmission.BatchIdentifier);
//Assert.AreEqual(responseDetail1.ExternalICN, transaction1.Item2.ExternalICN);
//Assert.AreEqual(responseDetail1.EncounterId, transaction1.Item2.EncounterId);
//Assert.AreEqual(responseDetail1.VoucherNumber, transmission.BatchIdentifier);
}