unit-testing 将模拟框架用作存根

示例

术语“模拟”和“存根”经常会变得混乱。造成这种情况的部分原因是,许多模拟框架还提供了对创建存根的支持,而没有与模拟相关的验证步骤。

可以像使用“使用存根提供罐头响应”示例中那样编写新类来实现存根,而可以使用模拟框架代替。

使用起订量:

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);