问题 Moq缓存返回值


似乎Moq正在缓存我设置为返回的数据。我这样做的时候:

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

它返回 一样 对象甚至认为AlbumService.CreateOne()返回新的Album实例。

每次访问CreateOne()时,是否可以让Moq调用返回操作?


2514
2017-12-06 14:33


起源



答案:


这应该有所帮助:

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

详细说明,Returns方法接受返回类型的对象或将评估为返回类型的委托。只要调用mocked方法,就会调用委托。


13
2017-12-06 14:36