似乎Moq正在缓存我设置为返回的数据。当我这样做时:
var service = new Mock<AlbumService>();
service.Setup(x => x.CreateOne()).Returns(new AlbumService().CreateOne());
即使AlbumService.CreateOne()返回新的Album实例,它也会返回相同的对象。
每次访问CreateOne()时,是否可以让Moq调用返回操作?
答案 0 :(得分:13)
这应该有所帮助:
var service = new Mock<AlbumService>();
service.Setup(x => x.CreateOne()).Returns(() => new AlbumService().CreateOne());
详细说明,Returns方法接受返回类型的对象或将评估返回类型的委托。无论何时调用模拟方法,都会调用委托。