如何存根IQueryable <int>和IQueryable <string>

时间:2015-11-07 00:37:30

标签: c# asp.net asp.net-mvc unit-testing stub

如何存根这些方法:

ProductDAL:

    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();

一直在搜索stackoverflow,但没有任何问题/答案让我更接近理解我是如何做到的。

2 个答案:

答案 0 :(得分:1)

创建和IEnumerable您需要返回的任何内容(可以是List或数组)。然后使用IQueryable扩展方法将其转换为AsQueryable,并将其传递给您使用的任何模拟/存根库。

答案 1 :(得分:0)

在这种情况下,我建议您将界面更改为一系列IEnumerable而不是IQueryable。没有必要将这些方法作为可查询对象进行预测。

如果您只是想将它们存根,请使用Enumerable.Empty<type>().AsQueryable().