Доступ к данным, модульное тестирование, внедрение зависимостей

Недавно у нас появилась задача создать простую утилиту, которая позволяет импортировать данные из файла специального формата в базу данных. Я'реализовано консольное приложение с несколькими классами (класс Program работает с классом бизнес-логики, класс business logic в свою очередь работает с классом доступа к данным). Все работает хорошо, но теперь яЯ думаю о создании модульных тестов и рефакторинге приложения (раньше я не создавал реальных модульных тестов, просто набор интеграционных тестов давным-давно, поэтому я считаю, что это приложение идеально подходит для практики).

Итак, вот проблема: класс доступа к данным сделан статическим, это неПозволяет имитировать его и в результате создавать реальные юнит-тесты. Чтобы это исправить, мне нужно создать интерфейс и реализовать его в классе доступа к данным. Также мне нужно будет добавить конструктор в класс бизнес-логики, который будет принимать параметр этого типа интерфейса. Таким образом, это означает, что я в конечном итоге создаю класс доступа к данным в методе приложения Main (), и что-то подсказывает мне, что это не лучший подход (действительно ли нормально, что точка входа должна знать о некоторых вещах доступа к данным? Что, если цепочка намного длиннее или должно быть несколько цепочек?). Я знаю, что могу использовать некоторый контейнер IoC, но я думаю, что это слишком простое приложение, чтобы использовать контейнеры.

Спасибо!

Ответы на вопрос(3)

Ваш ответ на вопрос