小编the*_*ead的帖子

使用Moq模拟Func <>构造函数参数并验证它是否被调用了两次

从这篇文章中获取问题(How to moq a Func)并对其进行了调整,因为答案是不正确的.

public class FooBar
{
    private Func<IFooBarProxy> __fooBarProxyFactory;

    public FooBar(Func<IFooBarProxy> fooBarProxyFactory)
    {
        _fooBarProxyFactory = fooBarProxyFactory;
    }

    public void Process() 
    {
        _fooBarProxyFactory();
        _fooBarProxyFactory();
    }
}
Run Code Online (Sandbox Code Playgroud)

我需要模拟一个作为构造函数参数传递的Func <>,断言func被调用两次.

当试图模拟函数时var funcMock = new Mock<Func<IFooBarProxy>>();Moq引发异常,因为Func类型不可模拟.

问题是,如果没有模拟func,就不可能验证函数被调用(n)次. funcMock.Verify( (), Times.AtLeast(2));

c# unit-testing moq functional-testing

26
推荐指数
3
解决办法
1万
查看次数

标签 统计

c# ×1

functional-testing ×1

moq ×1

unit-testing ×1