术语“模拟”和“存根”经常会变得混乱。造成这种情况的部分原因是,许多模拟框架还提供了对创建存根的支持,而没有与模拟相关的验证步骤。
可以像使用“使用存根提供罐头响应”示例中那样编写新类来实现存根,而可以使用模拟框架代替。
使用起订量:
var stub = new Mock<IRecordProvider>(); stub.Setup(provider => provider.GetRecords()).Returns(new List<Record> { new Record { Id = 1, Flag=false, Value="First" }, new Record { Id = 2, Flag=true, Value="Second" }, new Record { Id = 3, Flag=false, Value="Third" } });
这实现了与手工编码存根相同的行为,并且可以通过类似的方式提供给被测系统:
var processed = sut.ProcessRecord(stub.Object);