我想断言一个方法只被调用一次。我正在使用 RhinoMocks 3.5。
这是我认为可行的方法:
[Test]
public void just_once()
{
var key = "id_of_something";
var source = MockRepository.GenerateStub<ISomeDataSource>();
source.Expect(x => x.GetSomethingThatTakesALotOfResources(key))
.Return(new Something())
.Repeat.Once();
var client = new Client(soure);
// the first call I expect the client to use the source
client.GetMeMyThing(key);
// the second call the result should be cached
// and source is not used
client.GetMeMyThing(key);
}
GetMeMyThing()
如果第二次调用调用,我希望此测试失败source.GetSomethingThatTakesALotOfResources()
。