首页 > 解决方案 > 使 RhinoMock Stub 返回值依赖于参数

问题描述

是否可以为 RhinoMock 存根设置“默认”返回值?

例如:我有一个int从 1-175 接收并返回布尔值的方法:

internal bool myFunction(int number)

我想在 Rhino Mock 中存根它,这样它只truenumber2 或 3 时返回,否则返回 false:

myClass.Stub(x => x.MyFunction(2)).Return(true);
myClass.Stub(x => x.MyFunction(3)).Return(true);
// return false otherwise

但是,如果我在测试中通过任何其他 int(例如 100),该函数也将返回 true。除了我上面列出的两种情况外,我希望它在所有情况下都返回 false。我怎样才能做到这一点?

标签: c#rhino-mocks

解决方案


用于Do提供可以访问输入参数的方法实现

myClass.Stub(_ => _.MyFunction(Arg<int>.Is.Anything))
    .Do((Func<int, bool>)(number => {
        return number == 2 || number == 3;
    }));

推荐阅读