Estoy usando MOQ para simular una llamada a un método con una lista de resultados esperados. Mi método devuelve una lista, pero quiero que el simulacro haga una nueva lista cada vez que se llame al método. Lo que he hecho hasta ahora:Cómo hacer que Mock devuelva una nueva lista cada vez que se llama al método usando Moq
List<Correlation> expected = new List<Correlation> { new Correlation() { Code = "SelfError1" }, new Correlation() { Code = "SelfError2" } };
Mock<IRPLValidator> selfMock = new Mock<IRPLValidator>();
selfMock.Setup(f => f.Validate()).Returns(expected);
Lo que estoy tratando de lograr es hacer que el simulacro de retorno de una nueva lista cada vez que el método get de llama. He intentado esto, pero no funcionó:
selfMock.Setup(f => f.Validate()).Returns(new List<Correlation>{ new Correlation() { Code = "SelfError1" }, new Correlation() { Code = "SelfError2" } });
Como esto no funcionó, Estoy pensando que tal devolución de llamada es la respuesta a mi pregunta, pero no he encontrado ningún ejemplo adecuado para reinicializar mi lista . ¿Alguna sugerencia?
Como puede que se pregunte por qué necesito una nueva lista cada vez, el problema es que llamo al método sobre diferentes tipos de objetos haciendo algunos cambios en la lista, dependiendo del tipo de objeto. Debido a que el simulacro me da la misma lista cada vez que se llama al método, siempre estoy modificando el mismo objeto en la memoria, así no puedo seguir los cambios que estoy haciendo en él.
¡Gracias de antemano!
¡Funcionó como un encanto! Muchas muchas gracias. Eso fue tan fácil. –
Gracias - un día tendré todo este asunto del cierre. – David
Ojalá hubiera encontrado esto antes, perdí un día ayer preguntándome por qué mi lista no se actualizaba. ¡¡¡Gracias!!! – PmanAce