EF4 - возможно для Mock ObjectContext для тестирования подразделения?
-
01-10-2019 - |
Вопрос
Можно ли сделать без использования Islolator Tymock? Я нашел несколько предложений в Интернете, например, проходящие в метаданных только соединительной строке, однако, что я не сталкиваюсь, помимо Tymock, по-видимому, по-настоящему разрешит MOCK ObjectContext, который может быть введен в службы для тестирования подразделения. Путе ли я парунку в $$ за TypeMock или есть ли альтернативы? Никто не удалось создать ничего сопоставимого с TypeMock, который является открытым исходным кодом?
Решение
Я легко тестирую EF4 без издевательства. Что я сделал, было создать интерфейс репозитория с помощью кода из http://elegantcode.com/2009/12/15/ange-framework-ef4-generic-repository-and-unit-of-work-prototype/ Как основа я тогда создал InMemoryRepository<T>
класс, который использовал IRepository
интерфейс. Затем я заменил IObjectSet<T>
с А. List<T>
Внутри класса и изменил методы поиска соответственно.
Таким образом, если вам нужно выполнить тестирование подразделения, пройдите в inMeMoryRepository, а не на регистраториторий.
Другие советы
Поместите ваш запрос Linq2Entity за интерфейсом, проверьте его в изоляцию против реальной базы данных.
Напишите тесты для вашей бизнес-логики с помощью Mocks для ваших интерфейсов запросов. Не позволяйте Linq кровоточить в свою деловую логику!
Не используйте ReposityPattern!
Оберните объектContext в прокси-классе. Затем введите это в ваши классы.
Я не думаю, что шаблон репозитория является единственным ответом на вопрос (это позволяет избежать проблемы, конечно)
Мне понравился этот ответ - я думаю, что более подходит для внедрения тестов на существующую кодовую базу Создание интерфейса для ObjectContext