【发布时间】:2018-12-16 14:08:47
【问题描述】:
我必须模拟一个返回 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>>());
请告诉我如何模拟这个实例?
注意:我想为这个模拟返回数据。
谢谢
【问题讨论】:
-
It.IsAny<T>是一个帮助方法,用于设置模拟。只需将您想要从该方法返回的任何内容传递给Returns。如果你只想要一个空的枚举,试试Enumerable.Empty<T>。 -
@thisextendsthat,我无法创建 IEnumerable
类型的变量,即在我的情况下 IEnumerable 并返回它。能详细点吗? -
只返回一个
List<T>,这也是一个可枚举的......
标签: c# unit-testing .net-core moq