Moq кеширует возвращаемое значение - PullRequest
11 голосов
/ 06 декабря 2010

Похоже, что Moq кеширует данные, которые я настроил как возврат. Когда я делаю это:

var service = new Mock<AlbumService>();
service.Setup(x => x.CreateOne()).Returns(new AlbumService().CreateOne());

возвращает тот же объект , даже если AlbumService.CreateOne () возвращает новый экземпляр Album.

Можно ли заставить Moq вызывать действие Returns каждый раз, когда я получаю доступ к CreateOne ()?

1 Ответ

14 голосов
/ 06 декабря 2010

Это должно помочь:

var service = new Mock<AlbumService>();
service.Setup(x => x.CreateOne()).Returns(() => new AlbumService().CreateOne());

Для уточнения метод Returns принимает объект возвращаемого типа или делегат, который будет вычислять возвращаемый тип. Делегат вызывается всякий раз, когда вызывается смоделированный метод.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...