Я бы рекомендовал не использовать макеты для этого типа тестирования.Я пошел по этому пути с Java, и это всегда заканчивалось тем, что я чувствовал, что мало что доказал, за исключением того, что я могу писать насмешливые высказывания.Я бы порекомендовал либо использовать базу данных в памяти, либо иметь базу данных для каждого разработчика и принять некоторые вещи как интеграционные тесты.
Я перешел на .NET, и здесь используется обертка вокруг System.Data
& Oracle.DataAccess
и если честно, мне нравится такой подход.
Оболочка просто предоставляет интерфейс IDatabase с набором методов, таких как DataTable ExecuteFunction(...)
, которые предлагают простой способ вызова функции или процедуры оракула.Единственный класс из System.Data, видимый клиентами этого API, - это DataTable.Оболочка обрабатывает все беспорядок с IDbParameter.Оболочка имеет только интеграционные тесты.
Модульное тестирование фактического DAL очень просто, плюс написание DAL делает это немного лучше.Менее ужасный шаблон для решения.
утверждение, что мой DAL должен быть оболочкой для моей базы данных
DAL обеспечивает доступ к бизнес-функциям, хранящимся в базе данных.Оболочка БД удаляет код котельной пластины (и позволяет вам его высмеивать).
если я это сделаю, как я могу протестировать подключение к базе данных для моей обертки?
Не надо.Примите, что некоторые вещи являются интеграционными тестами.