Во время издевательств я столкнулся с некоторыми проблемами.
private Mock<IPaymentHandler> _mockRecurringPaymentHandler;
private Mock<IPaymentHandler> _mockRecurringPaymentFailedHandler;
private IEnumerable<IPaymentHandler> _paymentManagers;
_mockRecurringPaymentHandler = new Mock<IPaymentHandler>();
_mockRecurringPaymentFailedHandler = new Mock<IPaymentHandler>();
_paymentManagers = new List<IPaymentHandler>
{
_mockRecurringPaymentHandler.Object,
_mockRecurringPaymentFailedHandler.Object
};
_sut = new PaypaIIpnManager(
_paymentManagers,
_mockLogger.Object
);
И когда в последнее время я пытаюсь настроить метод для mockRecurringPaymentHandler
, например, ниже:
_mockRecurringPaymentHandler.Setup(method => method.GetPaymentType()).Returns("GFDGDFGDFG");
Это не работает.Это работает, только если я делаю это, прежде чем передать его в список.Почему это имеет такое поведение?
public PaypaIIpnManager(
IEnumerable<IPaymentHandler> paymentHandlers,
ILoggerService<PaypaIIpnManager> logger)
{
_handlersDic = RegisterStrategy(paymentHandlers);
_logger = logger;
}
protected Dictionary<string, IPaymentHandler> RegisterStrategy(IEnumerable<IPaymentHandler> paymentHandlers)
{
var dic = new Dictionary<string, IPaymentHandler>();
foreach (var handler in paymentHandlers)
{
var paymentType = handler.GetPaymentType();
dic.Add(paymentType, handler);
}
return dic;
}