我必须模拟一个返回IEnumerable的方法,如下所示。
public IEnumerable<Program> GetAllPrograms(string marketCode) {
return context.Set<Program>()
.Where(p => p.Market.Equals(marketCode)
&& p.IsEnabled == true);
}
我尝试了以下方法,但是此调用未返回任何结果。
programRepositoryMock.Setup(m => m.GetAllPrograms("ATV"))
.Returns(It.IsAny<IEnumerable<QuoteSettings.Program>>());
请让我知道如何模拟此实例?
注意:我想返回此模拟的数据。
谢谢
答案 0 :(得分:1)
Returns()
的参数是您希望模拟返回的值。不要在其中使用模拟库中的任何构造,而只需返回所需的内容即可:
List<Program> result = new List<Program>();
// Add entries to result list here...
programRepositoryMock.Setup(m => m.GetAllPrograms("ATV"))
.Returns(result);
当调用GetAllPrograms("ATV")
方法时,它将返回列表中的所有内容。如果要过滤It.IsAny<>
的参数,则需要GetAllPrograms()
构造。以下内容将与任何电台名称匹配:
programRepositoryMock.Setup(m => m.GetAllPrograms(It.IsAny<string>()))
.Returns(result);