Mar*_*ero 5 c# rhino-mocks stub
public interface ICell
{
int Value{get;}
void IncrementValue();
}
Run Code Online (Sandbox Code Playgroud)
我想在RhinoMocks中为这个接口创建一个存根.我有一个只读属性,我想每次调用IncrementValue()方法时增加它的值.这可能吗?我不想为这个存根创建一个新类.
我和杰伊有类似的建议,只是更短。不确定这是否有一些缺点。
int count = 0;
var mock = MockRepository.GenerateStub<ICell>();
mock.Stub(p => p.Value).WhenCalled(a => a.ReturnValue = count).Return(42);
mock.Stub(p => p.IncrementValue()).WhenCalled(a => {
count = (int)count+1;
});
Run Code Online (Sandbox Code Playgroud)
Return(42) 放在那里是为了表示“Value 返回一些东西,不要抛出”,并且 WhenCalled(a => a.ReturnValue = count) 用计数的当前值覆盖返回值 42。