Использование Moq для макетирования параметра конструктора Func <> и проверки его вызова дважды
Взял вопрос из этой статьи (Как сделать Func) и адаптировал его как ответ не правильный.
public class FooBar
{
private Func __fooBarProxyFactory;
public FooBar(Func fooBarProxyFactory)
{
_fooBarProxyFactory = fooBarProxyFactory;
}
public void Process()
{
_fooBarProxyFactory();
_fooBarProxyFactory();
}
}
У меня есть необходимость издеваться над Func <> это передается как параметр конструктора, утверждая, что функция была вызвана дважды.
При попытке издеваться над функциейvar funcMock = new Mock();
Moq повышает и исключение, так как тип Func не является насмешливым.
Проблема в том, что без насмешки над функцией невозможно проверить, что функция была вызвана (n) раз.funcMock.Verify( (), Times.AtLeast(2));