微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使 RhinoMock Stub 返回值依赖于参数

如何解决使 RhinoMock Stub 返回值依赖于参数

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

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

internal bool myFunction(int number)

我想在 Rhino Mock 中存根,以便它仅在 true 为 2 或 3 时返回 number,否则返回 false:

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

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

解决方法

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。