使用lambda的条件Moq返回值

时间:2012-02-24 09:29:42

标签: unit-testing lambda moq

是否可以根据输入返回不同的结果,例如

MoqSecurityAdminHelper.Setup(x => x.GetAllQuestions(It.IsAny<Boolean>()))
    .Returns(new Dictionary<String, String>
    {
        {"Key1", "Value1"},
        {"Key2", "Value2"}
    });

但是如果参数为true,则返回一个结果,如果为false则返回另一个结果。

或者是进行2次单独设置的唯一方法吗?

由于

2 个答案:

答案 0 :(得分:30)

MoqSecurityAdminHelper.Setup(x => x.GetAllQuestions(It.IsAny<Boolean>()))
                      .Returns((bool param) => param ? 
                                          someResult : 
                                          someOtherResult );

答案 1 :(得分:0)

如果在定义参数之前也可以使用

MoqSecurityAdminHelper.Setup(x => x.GetAllQuestions(It.IsAny<Boolean>()))
                      .Returns(param ? result : otherResult);