Estoy usando Moq como mi marco burlón y necesito probar una clase que cuando se ejecuta un tipo específico de excepción seguirá intentando hasta la situación se resuelve una vez que eso sucede, la ejecución termina.Cómo hacer un simulacro lanza una excepción la primera vez y devuelve un valor el segundo
Así que lo que necesito es algo similar a:
myMock = Mock<IFoo>();
myMock.Setup(m => m.Excecute()).Throws<SpecificException>();
myMock.Setup(m => m.Execute());
var classUnderTest = MyClass(myMock);
classUnderTest.DoSomething();
Assert.AreEqual(expected, classUnderTest.Result);
Gracias por cualquier ayuda que puede dar.
Parece interesante pero, ¿qué pasa si el método es nulo y no aparece el método "Devoluciones" después de la configuración? Y en realidad esto funciona si "GetCountThing" devuelve un int, no se compilará si devuelve algo más. –
@SergioRomero - por favor vea la respuesta editada. – TrueWill
En cuanto a si no es una int, cambie lo que está devolviendo de la línea 'Returns'. No tiene que ser el valor de 'calls'. – TrueWill