2015-11-07 13 views
-3

Как окурок эти методы:Как я окурок IQueryable <int> и IQueryable <String>

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, но нет вопросов/ответы, которые помогают мне понять, как я это делаю.

+1

Что именно вы хотите, чтобы создать заглушку для? База данных? –

+0

Вам нужно предоставить дополнительную информацию, например, когда вы хотите использовать обрезанные методы. Кроме того, вы должны сделать поиск в Google для учебника по модульному тестированию с помощью C#. –

+0

@DerekVanCuyk Я изменил IQueryable на IEnumerable. Я собираюсь использовать обрезанные методы в модульном тестировании, но я просто не понимаю, как я должен это делать. Это совершенно новое для всего этого, да. –

ответ

0

В этом случае я рекомендую вам изменить свой интерфейс на серию IEnumerable, а не IQueryable. Нет смысла использовать эти методы в качестве запросов, поскольку они уже были спроектированы.

Если вы просто пытаетесь незавершенными их, используйте Enumerable.Empty<type>().AsQueryable().

+0

Я изменил их на IEnumerable, но как Istub categoryNames и categoryID? пример будет прекрасным. –

+0

public IEnumerable getCatIdList() {return Enumerable.Empty (); } будет потенциальным заглушкой, если вы просто хотите, чтобы код был скомпилирован – James

1

Создайте и IEnumerable того, что вам нужно вернуть (может быть List или массив). Затем преобразуйте его в IQueryable с использованием метода расширения AsQueryable и передайте его в любую изнаночную/обучающую библиотеку, которую вы используете.