¿Puedo cambiar el comportamiento de un stub durante el tiempo de ejecución? Algo así como:¿Cómo cambiar el comportamiento de los talones?
public interface IFoo { string GetBar(); }
[TestMethod]
public void TestRhino()
{
var fi = MockRepository.GenerateStub<IFoo>();
fi.Stub(x => x.GetBar()).Return("A");
Assert.AreEqual("A", fi.GetBar());
fi.Stub(x => x.GetBar()).Return("B");
Assert.AreEqual("B", fi.GetBar()); // Currently fails here
}
Mi ejemplo de código todavía falla en la línea dada, fi.GetBar()
sigue devolviendo "A"
.
¿O hay otro truco para los talones del modelo cuyo comportamiento cambia con el tiempo? Prefiero no recurrir al uso de fi.Stub(...).Do(...)
.
Ah, probablemente solo necesito una copia impresa del excelente manual para que alguien me golpee en la cabeza con él. Parece que realmente debería ser obvio, pero no puedo encontrarlo.
Pruebe 'fi.Stub (x => x.GetBar()). Devuelve (" A "). Repeat.Once();' y 'fi.Stub (x => x.GetBar()). Return ("B"). Repeat.Once(); ' –