Похоже, что внутри метода Returns
вы указываете параметр с именем request
типа couponDetail[]
, но сам метод принимает параметры (orderLine[], orderHeader)
. Метод, который вставлен в Returns
, вызывается с фактическими параметрами, которые передаются в ваш смоделированный метод, что вызовет полученное вами исключение ParameterCountMismatchException.
- Вы можете передать нужный литеральный объект, посмеявшись над своим возвратом, прежде чем насмехаться над функцией. Пример ниже:
var coupondetails = new couponDetail[] {
new couponDetail
{
description = "75% off the original price",
value = 50
},
new couponDetail
{
description = "500 off the original price",
value = 20
}
};
var couponService = DependencyResolver.Resolve<Mock<ICouponWebServiceAdapter>>();
couponService
.Setup(a => a.checkCouponAvailability(It.IsAny<orderLine[]>(), It.IsAny<orderHeader>()))
.Returns(coupondetails);
- Вы можете передать в метод метод, который ДОЛЖЕН принимать все аргументы, переданные в исходный метод. Пример ниже:
var couponService = DependencyResolver.Resolve<Mock<ICouponWebServiceAdapter>>();
couponService
.Setup(a => a.checkCouponAvailability(It.IsAny<orderLine[]>(), It.IsAny<orderHeader>()))
.Returns((orderLine[] arg1, orderHeader arg2) => {
return new couponDetail[] {
new couponDetail
{
description = "75% off the original price",
value = 50
},
new couponDetail
{
description = "500 off the original price",
value = 20
}
};
});