小编bee*_*cus的帖子

Moq是一个具有5个以上参数和访问调用参数的函数

我有一个我想要Moq的功能.问题是需要5个参数.该框架仅包含Action<T1,T2,T3,T4>和Moq的通用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  
);  
Run Code Online (Sandbox Code Playgroud)

Moq不允许这样做,因为没有通用的Action需要5个参数.我已经使用了自己的存根.显然,最好使用Moq及其所有验证等.

c# delegates action moq

14
推荐指数
3
解决办法
4767
查看次数

标签 统计

action ×1

c# ×1

delegates ×1

moq ×1