Подтвердить что ты не робот

Как правильно unit test мой DAL?

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

4b9b3361

Ответ 1

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

Ответ 2

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

Ответ 3

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

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

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