我如何存根 IQueryable<int> 和 IQueryable<String>
How do I stub IQueryable<int> and IQueryable<String>
如何存根这些方法:
产品DAL:
public IQueryable<string> getCatNameList()
{
var db = new Database();
var categoryNames = db.ProductCategories.Select(c => c.Name);
return categoryNames;
}
public IQueryable<int> getCatIdList()
{
var db = new Database();
var categoryID = db.ProductCategories.Select(c => c.Categoryid);
return categoryID;
}
IProductDAL:
IQueryable<int> getCatIdList();
IQueryable<string> getCatNameList();
一直在 Whosebug 上搜索,但没有 questions/answers 让我更接近于理解我是如何去做的。
创建和 IEnumerable
您需要 return 的任何内容(可以是 List
或数组)。然后使用 AsQueryable
扩展方法将其转换为 IQueryable
并将其传递给您使用的任何 mocking/stubbing 库。
在这种情况下,我建议您将界面更改为一系列 IEnumerable
而不是 IQueryable
。将这些方法作为可查询的方法没有什么意义,因为它们已经被预测了。
如果您只是想对它们进行存根,请使用 Enumerable.Empty<type>().AsQueryable().
如何存根这些方法:
产品DAL:
public IQueryable<string> getCatNameList()
{
var db = new Database();
var categoryNames = db.ProductCategories.Select(c => c.Name);
return categoryNames;
}
public IQueryable<int> getCatIdList()
{
var db = new Database();
var categoryID = db.ProductCategories.Select(c => c.Categoryid);
return categoryID;
}
IProductDAL:
IQueryable<int> getCatIdList();
IQueryable<string> getCatNameList();
一直在 Whosebug 上搜索,但没有 questions/answers 让我更接近于理解我是如何去做的。
创建和 IEnumerable
您需要 return 的任何内容(可以是 List
或数组)。然后使用 AsQueryable
扩展方法将其转换为 IQueryable
并将其传递给您使用的任何 mocking/stubbing 库。
在这种情况下,我建议您将界面更改为一系列 IEnumerable
而不是 IQueryable
。将这些方法作为可查询的方法没有什么意义,因为它们已经被预测了。
如果您只是想对它们进行存根,请使用 Enumerable.Empty<type>().AsQueryable().