У меня разрабатывается трехуровневое приложение, и я создаю интеграционные тесты для DAO на уровне персистентности. Когда приложение запускается в Websphere или JBoss, я ожидаю использовать пул соединений и диспетчер транзакций этих серверов приложений. Когда приложение будет запущено в Tomcat или Jetty, мы будем использовать C3P0 для пула и Atomikos для транзакций.
Из-за этих различных подсистем следует ли тестировать DAO в полностью сконфигурированной среде сервера приложений или мы должны решать эти проблемы при интеграционном тестировании уровня обслуживания? В настоящее время мы планируем настроить простой источник данных JDBC с транзакциями, не относящимися к JTA (т.е. с локальными ресурсами), для тестирования интеграции DAO, поэтому сервер приложений не задействован .... но это заставляет меня задуматься о проблемах окружающей среды, которые мы не будем раскрывать .