У меня есть функция, которую я хочу в Moq. Проблема в том, что он принимает 5 параметров. Структура содержит только Action<T1,T2,T3,T4>
, а Moq generic CallBack()
только перегружает Action и четыре родовые версии. Есть ли для этого обходное решение?
Это то, что я хочу сделать:
public class Filter : IFilter
{
public int Filter(int i1, int i2, int i3, int i4, int i5){return 0;}
}
//Moq code:
var mocker = new Mock<IFilter>();
mocker.Setup(x => x.Filter(
It.IsAny<int>(),
It.IsAny<int>(),
It.IsAny<int>(),
It.IsAny<int>(),
It.IsAny<int>(),
It.IsAny<int>())
.Callback
(
(int i1, int i2, int i3, int i4, int i5) => i1 * 2
);
Moq не позволяет этого, потому что нет общего действия, которое принимает 5+ параметров. Я прибегал к созданию собственного заглушки. Очевидно, было бы лучше использовать Moq со всеми его проверками и т.д.