2008-11-21 3 views
11

Я новичок в модульном тестировании. Но как я могу тестировать свой DAL, который написан с помощью Entity Framework, поэтому я могу убедиться, что мой код DAL работает правильно, но база данных на самом деле не трогается? Может кто-нибудь дать как можно больше деталей, пожалуйста.Как правильно выполнить тестирование DAL?

ответ

15

Если вы хотите проверить, что ваш уровень доступа к данным работает правильно, вам действительно нужно протестировать его против базы данных в какой-то момент, поскольку в противном случае вы на самом деле не тестируете его.

+0

+1 И если тестовая база данных не существует, нужно создать действительно (похоже, что OP обеспокоен обновлением данных). – 2008-11-21 19:24:18

+1

Какова роль насмешки, может ли кто-нибудь объяснить использование этого в сравнении с ролью тестовой базы данных? – 2008-11-21 20:27:02

4

Когда я тестирую свой DAL, я использую транзакции и откаты в конце модульного теста, поэтому db чист.

4

Единичное тестирование DAL - очень распространенная головная боль при разработке. По большей части, я предлагаю вам пропустить его.

Большинство ORMs в наши дни предлагают своего рода язык запросов, будь то LINQ или HQL, или какой-либо другой вкус. Поскольку для правильного модульного теста требуется, чтобы вы фактически не попали в базу данных, вы должны издеваться над ORM, и это самая большая боль в заднице, о которой вы можете думать. Это не стоит, ИМО. В конечном счете, вы только закончите тестирование, что вы написали правильный запрос в своем коде; вы не получаете никакой регрессионной ценности и можете лучше обслуживать свои цели путем проверки кода.

Я не говорю, что вы не должны проверять свое использование DAL; просто не пытайтесь тестировать устройство. У вас все равно должен быть набор интеграционных и пользовательских приемочных тестов для вашей программы/системы; пусть они обрабатывают ваш доступ к данным вместо этого.

Смежные вопросы