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