
[英]How to mock IEnumerable in AddClaimsAsync method in order to run a unit test
[英]How to mock a method returning IEnumerable<T> in unit test method?
我必须模拟一个返回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>>());
请让我知道如何模拟此实例?
注意:我想返回此模拟的数据。
谢谢
Returns()
的参数是您希望模拟返回的值。 不要在其中使用模拟库中的任何构造,而只需返回您想要的内容即可:
List<Program> result = new List<Program>();
// Add entries to result list here...
programRepositoryMock.Setup(m => m.GetAllPrograms("ATV"))
.Returns(result);
当GetAllPrograms("ATV")
方法时,它将返回列表中的所有内容。 如果要过滤GetAllPrograms()
的参数,则需要It.IsAny<>
构造。 以下内容将与任何站点名称匹配:
programRepositoryMock.Setup(m => m.GetAllPrograms(It.IsAny<string>()))
.Returns(result);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.