public interface ICell
{
int Value{get;}
void IncrementValue();
}
我想在RhinoMocks中爲此接口創建存根。 我有一個只讀屬性,我想每次調用IncrementValue()方法時增加他的值。這可能嗎?我不想爲這個存根創建一個新類。存根readOnly屬性的行爲
public interface ICell
{
int Value{get;}
void IncrementValue();
}
我想在RhinoMocks中爲此接口創建存根。 我有一個只讀屬性,我想每次調用IncrementValue()方法時增加他的值。這可能嗎?我不想爲這個存根創建一個新類。存根readOnly屬性的行爲
我有類似的建議,傑伊,只是更短。不知道這是否有一些缺點。
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;
});
回報(42)放在那裏說「值,則返回的時候,不要扔」和WhenCalled(A => a.ReturnValue =計數)返回淡水河谷42與計的電流值覆蓋。
當函數被調用時,您可以給Rhino模擬一個lambda運行。這個lambda可以增加一個計數器。你可以找到一個例子here
我想出了這個太:
cell.Stub(c => c.Value).WhenCalled(m => m.ReturnValue = cell.GetArgumentsForCallsMadeOn(c => c.IncrementValue()).Count).Return(0);
你的幫助,我是WhenCalled方法的行爲混淆之前...但我認爲你的做法是一個比這
我猜馬丁的問題,更好地是什麼增加...接口只有一個get屬性,沒有設置 – 2011-01-08 02:56:43