Использование TDD: синхронизация файлов с клиентом / сервером - PullRequest
5 голосов
/ 05 сентября 2011

Я начал пытаться выучить тдд и хотел использовать его в реальном проекте. Поэтому я решил запрограммировать простую синхронизацию файлов с клиентом и сервером в Java. После более или менее доработки клиентской части я застрял при написании серверной части.

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

Теперь вот мой вопрос:

Это изображение показывает, как я представлял, как все может выглядеть, где зеленые части завершены, а желтые еще не реализованы.

В моем случае я должен был бы передать RemoteServer a ConnectionManager. ConnectionManager потребовались бы FileAdapter и Communicator для создания ClientConnectionHandler. Это звучит как слишком много для меня. Это нормально для tdd'ing или я делаю что-то не так, чтобы все проверялось?

edit: класс ClientConnectionHandler отвечает только за логику синхронизации файлов на стороне сервера, что означает: следование моему мини-протоколу для получения файлов от клиента.

1 Ответ

2 голосов
/ 05 сентября 2011

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

Именно поэтому IoC Библиотеки контейнеров, такие как Spring , популярны. Они облегчают подключение (настройку и разрешение) всех зависимостей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...