【发布时间】:2014-12-19 01:38:36
【问题描述】:
我正在尝试设置一个模拟来从集合中返回数据:
private IList<DutyCategory> dutyCategories;
private Mock<IDutyCategoryService> mockService;
[TestInitialize()]
public void UnitTestSetup()
{
dutyCategories = new List<DutyCategory>()
{
new DutyCategory(){Description = "Description",ID = 1,IsActive = true,Name = "Test 1",OrganizationID = 1}
};
mockService = new Mock<IDutyCategoryService>();
mockService.Setup(a => a.GetDutyCategories()).ReturnsAsync(dutyCategories);
mockService.Setup(a => a.GetDutyCategoriesByOrganization(It.IsAny<int>()))
.ReturnsAsync((int id) => dutyCategories.Where(n=>n.OrganizationID == id));
}
UnitTestSetup 中的最后一行是问题所在。我收到以下错误:
无法将 lambda 表达式转换为类型“System.Collections.Generic.IEnumerable”,因为它不是委托类型
我如何模拟 GetDutyCategoriesByOrganization 以便它返回列表 dutyCategories 的子集?
【问题讨论】:
标签: c# unit-testing moq