从moqed存储库方法返回一个元组

时间:2014-06-02 19:41:34

标签: c# moq

是否可以从moqed方法返回元组?

例如:

mock.Setup(m => m.MethodName(It.IsAny<int>()))
    .Returns(a => new Tuple<int,int>(a.Item1, a.Item2));

3 个答案:

答案 0 :(得分:1)

您只需返回具有所需值的元组(例如1和5):

mock.Setup(m => m.MethodName(It.IsAny<int>())).Returns(new Tuple<int, int>(1, 5));

或者使用lambda:

mock.Setup(m => m.MethodName(It.IsAny<int>())).Returns(() => new Tuple<int, int>(1, 5));

答案 1 :(得分:0)

假设该方法正在&#34; moq&#39; d&#34;返回一个元组,然后我不知道为什么不...请记住,有时您必须明确设置返回值。

尝试:

mock.Setup(m => m.MethodName(It.IsAny<int>())).Returns<Tuple<int,int>>(a => new Tuple<int,int>(a.Item1, a.Item2));

如果这不起作用,那么提供错误消息可能有帮助

答案 2 :(得分:0)

那不会编译。您只能在Return回调中获得一个int参数。

mock.Setup(item => item.MethodName(It.IsAny<int>()))
    .Returns((int i) => new Tuple<int, int>(i, i));