从这篇文章中采纳了这个问题(How to moq a Func)并将其作为答案进行了修改,因为答案不正确。使用Moq来模拟Func <>构造函数参数并验证它被调用了两次
public class FooBar
{
private Func<IFooBarProxy> __fooBarProxyFactory;
public FooBar(Func<IFooBarProxy> fooBarProxyFactory)
{
_fooBarProxyFactory = fooBarProxyFactory;
}
public void Process()
{
_fooBarProxyFactory();
_fooBarProxyFactory();
}
}
我有一个需要模拟函数求<>被作为构造函数参数传递,该FUNC是调用两次断言。
当试图模拟功能var funcMock = new Mock<Func<IFooBarProxy>>();
Moq引发和异常,因为Func类型不可模仿。
问题是,如果不嘲笑函数,就不可能验证函数被调用了(n)次。 funcMock.Verify((), Times.AtLeast(2));
Moq现在支持OP最初试图做的事情,请参阅@ ktam33的答案 – Mike