问题描述
是否可以为 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;
}));