Estoy buscando cómo puedo simular un método que devuelve un valor diferente la segunda vez que se llama al primero hora. Por ejemplo, algo como esto:RhinoMocks: simulando un método cuyo valor de retorno cambia (incluso cuando pasó el mismo parámetro) con llamadas múltiples
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);
}
¿Hay algo que haga esto posible? Además de implementar un sub para el getter que implementa una máquina de estado?
Saludos muchachos,
Alex
Eche un vistazo a los simulacros ordenados y desordenados: http://ayende.com/wiki/Rhino%20Mocks%20Ordered%20and%20Unordered.ashx – Maciej
¿Qué pasa con el código que proporcionó? 'Repeat.Once()' debería funcionar –
@lazyberezovsky La primera llamada a m.SeconsSinceStarted devuelve 2, no 1 como se esperaba – AlexC