有时我在测试类设置中 stub 依赖项,然后想在具体测试中重新 stub 其中一些。但是 Rhino mocks 只记住第一个 stub 值,有点不方便。
someStub.Stub(x => x.SomeMethod(1)).Return(100);
var value1 = someStub.SomeMethod(1);
someStub.Stub(x => x.SomeMethod(1)).Return(200);
var value2 = someStub.SomeMethod(1);
值 2 将等于 100。
这是设计好的行为吗?有任何解决方法吗?
最佳答案
我遇到了自己做这件事的需要。我通过使用 WhenCalled
函数解决了这个问题,您可以在该函数中传入一个要在调用该函数时执行的操作。这将使您在不同时间点可以更灵活地返回。
有关此 stackoverflow 线程的更多信息/事件: Rhino Mocks: Re-assign a new result for a method on a stub和这里: Changing previously stubbed calls with Rhino Mocks .
我知道这是旧的,但希望它能帮助其他人。
关于c# - Rhino Mocks Restub 功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3931842/