我有一个我想要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及其所有验证等.