似乎Moq正在缓存我设置为返回的数据。我这样做的时候:
var service = new Mock<AlbumService>();
service.Setup(x => x.CreateOne()).Returns(new AlbumService().CreateOne());
它返回 一样 对象甚至认为AlbumService.CreateOne()返回新的Album实例。
每次访问CreateOne()时,是否可以让Moq调用返回操作?
似乎Moq正在缓存我设置为返回的数据。我这样做的时候:
var service = new Mock<AlbumService>();
service.Setup(x => x.CreateOne()).Returns(new AlbumService().CreateOne());
它返回 一样 对象甚至认为AlbumService.CreateOne()返回新的Album实例。
每次访问CreateOne()时,是否可以让Moq调用返回操作?
这应该有所帮助:
var service = new Mock<AlbumService>();
service.Setup(x => x.CreateOne()).Returns(() => new AlbumService().CreateOne());
详细说明,Returns方法接受返回类型的对象或将评估为返回类型的委托。只要调用mocked方法,就会调用委托。