Moq缓存返回值

时间:2010-12-06 14:33:05

标签: moq

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

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

即使AlbumService.CreateOne()返回新的Album实例,它也会返回相同的对象。

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

1 个答案:

答案 0 :(得分:13)

这应该有所帮助:

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

详细说明,Returns方法接受返回类型的对象或将评估返回类型的委托。无论何时调用模拟方法,都会调用委托。