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