Принадлежит ли бизнес-логика уровню обслуживания? - PullRequest
0 голосов
/ 17 марта 2010

У меня есть набор классов, а именно: объект передачи данных, объект реализации службы и объект доступа к данным. В настоящее время у меня есть бизнес-логика в объекте реализации сервиса; он использует дао для получения данных для заполнения dto, которое отправляется обратно в код клиента / графического интерфейса.

Проблема в том, что я не могу создать легкий тест junit для объекта реализации сервиса (это сервлет); Я думаю, что бизнес-логика должна быть в другом месте, но единственное, о чем я могу думать, это поместить бизнес-логику в дао или в еще один слой, который находится между дао и реализацией сервиса.

Есть ли другие варианты, или я думаю об этом неправильно?

Это проект GWT / App Engine.

Ответы [ 3 ]

1 голос
/ 17 марта 2010

Я не понимаю, почему вы не можете выполнить юнит-тест сервлета, например согласно этому ТАКому вопросу (есть другие на подобные темы) - не могли бы вы объяснить?

Редактировать : если нет особых причин, я предлагаю вам применить бизнес-логику на уровне сервисов (там, где она кажется) и протестировать ее там - подходы, предложенные в вопросе SO Я только что процитировал, например, кажущиеся достаточно легкими (хотя я не проверял их специально).

0 голосов
/ 07 мая 2011

Сервлет - это контроллер, очень большая ошибка - поместить туда бизнес-логику.

0 голосов
/ 17 марта 2010

Вы можете поместить свою бизнес-логику в собственный файл JAR и протестировать этот компонент независимо от интеграции с сетью (сервлет)

Сервлет - это просто протокол, это не ваша бизнес-логика, а скорееточка интеграции.

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

Еще одно замечание: вы можете захотеть заглянуть в инфраструктуру MVC;распорки.Ваша модель будет содержать бизнес-логику.

Надеюсь, это поможет.

...