Тестирование вставок в базу данных с Entity Framework - PullRequest
0 голосов
/ 17 марта 2012

Я делаю проект TDD с использованием EF. Я хочу провести модульное тестирование операций вставки, которые я делаю. Как мне это сделать?

Что я имею в виду;

  1. В модульном тесте я могу запросить базу данных, если моя вставка прошла успешно.

  2. Я могу зависеть от других методов в моей бизнес-библиотеке, чтобы проверить, была ли вставка успешной, но я думаю, что это нарушает цель тестирования UNIT.

Каковы ваши предложения?

Или я должен использовать фиктивный фреймворк, такой как Moq?

Ответы [ 3 ]

1 голос
/ 17 марта 2012

Это действительно интеграционное тестирование, а не модульное тестирование, обычно с тестом TDD i на границах моей системы, то есть до, но не включая компонент, который фактически вызывает внешнюю систему. Пример этого метода можно найти здесь: http://dl.dropbox.com/u/37129059/StaticVoid.Repository.Demo.zip с использованием моей инфраструктуры хранилища (http://blog.staticvoid.co.nz/2011/10/staticvoid-repository-pattern-nuget.html).

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

1 голос
/ 17 марта 2012

Я думаю, что это лучшая статья о тестируемости в EF:

http://msdn.microsoft.com/en-us/library/ff714955.aspx

1 голос
/ 17 марта 2012

То, что вы пытаетесь сделать, называется интеграционным тестированием, а не модульным тестированием.Единственная цель, которую хотелось бы проверить, как ведет себя ORM, - проверить, работает ли отображение.Таким образом, ваш тестовый пример является вполне допустимым.Что вам нужно сделать, это просто создать объект сущности, сохранить его в БД.Получить обратно сохраненный объект и сравнить с объектом, который вы только что создали.Если все поля / свойства равны, отображение EF работает нормально.

...