2010-06-07 5 views
1

У меня есть трехуровневое приложение, находящееся в разработке, и создаю интеграционные тесты для DAO в уровне сохранения. Когда приложение запускается в Websphere или JBoss, я ожидаю использовать пул соединений и диспетчер транзакций этих серверов приложений. Когда приложение запускается в Tomcat или Jetty, мы будем использовать C3P0 для объединения и Atomicos для транзакций.Следует ли проводить тестирование интеграции DAO на сервере приложений?

В связи с этими различными подсистемами, должны ли DAO быть протестированы в полностью настроенной среде сервера приложений или должны ли мы справиться с этими проблемами при интеграции тестирования уровня обслуживания? В настоящее время мы планируем создать простой источник данных JDBC с не-JTA (то есть ресурсами-локальными) транзакциями для тестирования интеграции DAO, поэтому не задействован сервер приложений ... но это оставляет мне интересно об экологических проблемах, которые мы не будем раскрывать ,

+0

Off темы может быть, но я был на поиске способа использования транзакций (для «Unit Testing» моих DAO, вне контейнера, но с базой данных - простым JDBC соединение), и было бы полезно, если бы вы могли подробно рассказать о том, как использовать транзакцию без сервера приложений. – dchucks

+0

@dchucks. Я создал контекст приложения весеннего теста и настроил собственный (JPG) основатель JPA для использования Hibernate и инструментария управления транзакциями Atomicos. Если вы хотите получить более подробную информацию, откройте здесь вопрос и ссылку на него. – HDave

ответ

1

Я думаю, что вы на правильном пути с этим мышлением. Если возможно, вы должны настроить сервер непрерывной интеграции (например, Hudson), который запускает вашу производственную среду. Таким образом, вы можете развиваться с довольно высокой уверенностью, используя Tomcat и т. Д., Запуская тесты против вашей локальной настройки, и когда вы проверяете свой код, убедитесь, что те же тесты запускаются против реальной сделки.

+0

У нас уже есть Хадсон. Наверное, мне просто интересно, должны ли тесты DAO запускаться на сервере приложений ... или просто в конце концов. – HDave

2

Помимо тестирования каждого модуля с помощью unittests, integration test должен тестировать группы модулей.

Я не хочу быть педантичным, но в therorie это показано system test для тестирования черного ящика по QA.

Для небольших проектов это может быть не представляется возможным

+0

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

+0

Мое понимание определения теста интеграции - это два или более модулей или один модуль и внешний ресурс. Независимо от определений, должны ли тесты DAO запускаться на сервере приложений? ... или просто сквозные тесты? – HDave

Смежные вопросы