【问题标题】:Making RhinoMock Stub Return Value Dependent on a Paramter使 Rhino Mock Stub 返回值依赖于参数
【发布时间】:2021-01-15 16:39:21
【问题描述】:

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

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

internal bool myFunction(int number)

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

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

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

【问题讨论】:

  • 一种方式if(number == 2 || number == 3) { myClass.Stub(...);} 等...可能是更好的方式(因此此评论与答案)

标签: c# rhino-mocks


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    • 2011-08-02
    • 2010-10-02
    • 1970-01-01
    • 1970-01-01
    • 2021-09-19
    • 2015-08-21
    相关资源
    最近更新 更多