public interface ICell
{
int Value{get;}
void IncrementValue();
}
我想在 RhinoMocks 中为这个接口(interface)创建一个 stub 。 我有一个只读属性,我想在每次调用 IncrementValue() 方法时增加他的值。这可能吗?我不想为此 stub 创建一个新类。
最佳答案
我和 Jay 有类似的建议,只是更短。不确定这是否有一些缺点。
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;
});
Return(42) 放在那里说“值返回一些东西,不要抛出”并且 WhenCalled(a => a.ReturnValue = count) 覆盖返回值 42 与计数的当前值。
关于c# - stub 只读属性的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4632050/