使用lambda的条件Moq返回值

koo*_*hka 24 lambda unit-testing moq

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

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

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

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

谢谢

Ufu*_*arı 31

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