Можно ли использовать DbContext без подключения к базе данных? - PullRequest
0 голосов
/ 26 ноября 2011

Я использую Entity Framework Code-First в своем приложении и собираюсь протестировать некоторые службы.У меня есть шаблоны репозитория и единицы работы, и я пытаюсь найти лучший способ подделать эти объекты для моих тестов.Конечно, я мог бы создать полностью поддельные классы Repository и Unit of Work для своих тестов, но я хотел бы избежать повторной реализации многих функций DbContext (например, управления связанными объектами, отслеживания изменений и т. Д.) В моемподделки.

Я действительно хочу все, что делает DbContext, кроме:

  1. Попытка извлечь что-либо из базового хранилища данных.
  2. Попытка записать что-либо в базовое хранилище данных.

Возможно ли это?

Ответы [ 2 ]

0 голосов
/ 26 ноября 2011

Вы можете использовать базу данных SQL Server Compact Edition для своего модульного / интеграционного теста. Вы можете создать базу данных CE через инициализатор базы данных. Эта база данных будет иметь структуру, аналогичную вашей базе данных, и EF API будет работать без каких-либо изменений.

Однако, если вы использовали хранимые процедуры или специфические функции базы данных, вам не повезло, тестируя эти функции.

0 голосов
/ 26 ноября 2011

Подделки ваших репозиториев, если они реализуют соответствующие интерфейсы, не должны требовать повторной реализации вашего контекста.Самое большее, они должны содержать только список в памяти связанных с ними типов объектов.В качестве альтернативы можно использовать фальшивый фреймворк, например Moq, для создания поддельных реализаций.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...