2016-08-05 52 views
2

设置Mock对象以返回特定值而不管输入参数如何,我当前必须有效写出完整的签名,例如,Moq方法无需指定参数列表即可设置

Mock.Get(myThing).Setup(x => x.DoThing(It.IsAny<Int32>(), It.IsAny<String>(), It.IsAny<IEnumerable<Boolean>>())).Returns(false)

这是一个有点乏味如果有多个输入参数和我不在乎任何人的,所以是有办法,我只能说It.IsAnyForAllInputParameters()?

+2

那个方法的重载怎么样 - Moq如何处理它们? –

+0

哦,是的,好点。然后是长参数列表。您应该添加该答案作为答案,我会给你一个upvote。 – LordWilmore

回答

1

正如Bernhard Hiller在评论中指出的那样,如果这可能,那么moq现在应该如何设置所有具有相同名称的方法。这不应该是一个问题,除非他们有不同的返回类型:

void Sum(int a, int b, ref int result) 
{ 
    result = a + b; 
} 

int Sum(int a, int b) 
{ 
    return a + b; 
} 

然后,如果你想安装Sum方法的返回值10,应该如何着手起订量为第一Sum方法?