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