使 Rhino Mock Stub Return 值依赖于参数
Making RhinoMock Stub Return Value Dependent on a Paramter
是否可以为 RhinoMock 存根设置“默认”return 值?
例如:我有一个方法接受 1-175 中的 int
和 returns 布尔值:
internal bool myFunction(int number)
我想在 Rhino Mock 中存根,如果 number
是 2 或 3,它只会 returns true
,否则为假:
myClass.Stub(x => x.MyFunction(2)).Return(true);
myClass.Stub(x => x.MyFunction(3)).Return(true);
// return false otherwise
但是,如果我在测试中传递任何其他 int(例如 100),该函数也将 return 为真。我希望它 return 在所有情况下都为 false,除了我上面列出的两种情况。我该怎么做?
使用Do
提供一个可以访问输入参数的方法实现
myClass.Stub(_ => _.MyFunction(Arg<int>.Is.Anything))
.Do((Func<int, bool>)(number => {
return number == 2 || number == 3;
}));
是否可以为 RhinoMock 存根设置“默认”return 值?
例如:我有一个方法接受 1-175 中的 int
和 returns 布尔值:
internal bool myFunction(int number)
我想在 Rhino Mock 中存根,如果 number
是 2 或 3,它只会 returns true
,否则为假:
myClass.Stub(x => x.MyFunction(2)).Return(true);
myClass.Stub(x => x.MyFunction(3)).Return(true);
// return false otherwise
但是,如果我在测试中传递任何其他 int(例如 100),该函数也将 return 为真。我希望它 return 在所有情况下都为 false,除了我上面列出的两种情况。我该怎么做?
使用Do
提供一个可以访问输入参数的方法实现
myClass.Stub(_ => _.MyFunction(Arg<int>.Is.Anything))
.Do((Func<int, bool>)(number => {
return number == 2 || number == 3;
}));