Я новичок в модульном тестировании. Но как мне выполнить модульное тестирование моего DAL, написанного с помощью Entity Framework, чтобы я мог убедиться, что мой код DAL работает правильно, но база данных фактически не затрагивается? Может ли кто-нибудь дать как можно более подробную информацию, пожалуйста.
Как правильно выполнить модульное тестирование моего DAL?
Ответы (3)
Если вы хотите проверить, правильно ли работает ваш уровень доступа к данным, вам действительно нужно протестировать его на базе данных в какой-то момент, поскольку в противном случае вы на самом деле не тестируете его работу.
Когда я модульно тестирую свой DAL, я использую транзакции и откат в конце модульного теста, поэтому БД чистая.
Модульное тестирование DAL — очень распространенная головная боль при разработке. По большей части, я предлагаю вам пропустить это.
Большинство ORM в наши дни предлагают какой-либо язык запросов, будь то LINQ, HQL или какой-либо другой вариант. Поскольку правильный модульный тест требует, чтобы вы на самом деле не попадали в базу данных, вы должны имитировать ORM, и это самая большая боль в заднице, о которой вы только можете подумать. Не стоит, имхо. В конечном счете, вы только в конечном итоге проверяете, написали ли вы правильный запрос в своем коде; вы вообще не получаете значения регрессии и можете лучше служить своим целям, просматривая код.
Однако я не говорю, что вам не следует тестировать использование DAL; просто не пробуйте модульное тестирование. У вас по-прежнему должен быть набор интеграционных и пользовательских приемочных тестов для вашей программы/системы; вместо этого пусть они проверят ваш доступ к данным.