Написание функциональных тестов с помощью серверного Java-приложения, которое не является приложением Java EE
В моей компании есть пакетное приложение на основе Java, которое не реализовано в Java EE, и в него встроено решение для обработки некоторых вызовов веб-служб.
До сих пор ни у одной из этих конечных точек не было никаких функциональных тестов (использующих что-то вроде htmlunit), что явно плохо.
Мне было поручено сделать это. Мое определение успеха состоит в том, чтобы заставить его вести себя как можно лучше, как grails, и его плагин для функционального тестирования или традиционный Java EE будет использовать отказоустойчивый плагин maven.
В приложении есть метод main(). Внутренне все (например, источники данных, совместимость заданий и т. Д.) Настраивается в Spring.
У кого-нибудь есть предложения по стратегии? Не стесняйтесь предлагать мне дополнительную информацию.
2 ответа
Я закончил с использованием теста Джерси (см. Эту запись SO).
Посмотрите на Spring Test Framework. Он позволяет вам создавать специфичные для теста файлы контекста приложения и имеет аккуратную интеграцию с JUnit 4 для поддержки транзакций JDBC для вашей базы данных. В основном Spring создает новую транзакцию, запускает ваш тестовый метод и затем откатывает транзакцию после того, как у вас есть шанс утверждать, что изменения в базе данных верны. Вы можете запускать интеграционные тесты с неизмененным кодом DAO для работающей базы данных без каких-либо проблем, чтобы потом их убрать.