Я использую MOQ, чтобы высмеять вызов метода с ожидаемым возвратным списком. Мой метод возвращает список, но я хочу, чтобы mock создавал новый список при каждом вызове метода. Что я сделал до сих пор:
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);
То, что я пытаюсь достичь, - сделать mock возвращать новый список при каждом вызове метода. Я пробовал это, но не работал:
selfMock.Setup(f => f.Validate()).Returns(new List<Correlation>{ new Correlation() { Code = "SelfError1" }, new Correlation() { Code = "SelfError2" } });
Поскольку это не сработало, я думаю, что Callback - это ответ на мой вопрос, но я не нашел подходящего примера для повторной инициализации моего списка. Любые предложения?
Как вы можете задаться вопросом, зачем мне нужен новый список каждый раз, проблема в том, что я вызываю метод для разных типов объектов, внося некоторые изменения в список, в зависимости от типа объекта. Поскольку макет дает мне тот же список при каждом вызове метода, я всегда изменяю один и тот же объект в памяти, поэтому я не могу отслеживать изменения, которые я делаю на нем.
Спасибо заранее!