-1
次のユニットテストがあります。さらにカスタマイズ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;
}
);
}
どのように分布アレイが読み取り専用である場合に「1」とpaymentSpecificationResponse.Distributions [0] .Transaction.GetVendorId()を返すようにテストを変更することができます。
私は私の質問があったはずでした。私はpaymentSpecificationResponse.Distributions [0]を設定できないときに、どのようにpaymentSpecificationResponseを変更する必要がありますか? paymentSpecificationResponseはサードパーティ製のDLLの一部です。 –
私は今理解しています。残念ながら、第三者のクラスを見ることができないと、決定的な答えを出すのは難しいです。あなたが呼び出すことができる 'SetVendorId()'関数はありますか? '.Transaction'をモックに設定できますか? – mdickin
実際、彼らは配布を追加するAddDistributionメソッドを持っていました。有効なディストリビューションを作成し、AddDistributionメソッドを使ってそれを追加することは私の仕事でした。 –