我期待找出如何我可以模擬一個方法,第二次調用第一次返回一個不同的值時間。例如,類似這樣的東西:RhinoMocks - 嘲笑一個方法,其返回值更改(即使傳遞相同的參數)與多個調用
public interface IApplicationLifetime
{
int SecondsSinceStarted {get;}
}
[Test]
public void Expected_mock_behaviour()
{
IApplicationLifetime mock = MockRepository.GenerateMock<IApplicationLifetime>();
mock.Expect(m=>m.SecondsSinceStarted).Return(1).Repeat.Once();
mock.Expect(m=>m.SecondsSinceStarted).Return(2).Repeat.Once();
Assert.AreEqual(1, mock.SecondsSinceStarted);
Assert.AreEqual(2, mock.SecondsSinceStarted);
}
有什麼可以使這成爲可能嗎?除了爲實現狀態機的getter實現一個sub?
乾杯傢伙,
亞歷
看看有序和無序的嘲笑:http://ayende.com/wiki/Rhino%20Mocks%20Ordered%20and%20Unordered.ashx – Maciej
你提供的代碼有什麼問題? 'Repeat.Once()'應該可以工作 –
@lazyberezovsky對m.SecondsSinceStarted的第一次調用返回2,而不是1按預期方式 – AlexC