-1
Ich habe den folgenden Komponententest.Weitere anpassen Rückgabewert mit MOQ
[TestMethod]
public void IfTheSecondPaymentFailsThenTheFirstPaymentShouldBeVoided()
{
var iPaymentMock = new Mock<IPaymentMock>();
var paymentSpecificationResponse = new PreregisteredAccountSpec();
iPaymentMock.Setup(
counter => counter.ProcessPayment
(
It.IsAny<Context>(),
It.IsAny<PreregisteredAccountSpec>(),
It.IsAny<Guid>())
).
Returns((Context context, PaymentSpecification spec, Guid guid) =>
{
return paymentSpecificationResponse;
}
);
}
Wie kann ich den Test ändern paymentSpecificationResponse.Distributions zurückzukehren [0] .Transaction.GetVendorId() als "1", wenn das Distributions-Array nur gelesen wird.
Ich denke, meine Frage hätte sein sollen: Wie sollte ich die paymentSpecificationResponse ändern, wenn ich paymentSpecificationResponse.Distributions [0] nicht "setzen" kann? Die paymentSpecificationResponse ist Teil einer Drittanbieter-DLL. –
Ich verstehe jetzt. Leider ist es schwierig, eine endgültige Antwort zu geben, ohne die Kurse von Dritten zu sehen. Gibt es eine 'SetVendorId()' Funktion, die Sie aufrufen können? Können Sie '.Transaction' auf einen Schein setzen? – mdickin
Tatsächlich verfügten sie über eine AddDistribution-Methode, um eine Verteilung hinzuzufügen. Das Erstellen einer gültigen Distribution und das Hinzufügen mit der AddDistribution-Methode funktionierte für mich. –