Я пытаюсь разработать некоторые эффективные интеграционные тесты для моего приложения GAE/j. Я знаком с https://developers.google.com/appengine/docs/java/tools/localunittesting - эти инструменты отлично подходят для небольших модульных тестов. Теперь я заинтересован в разработке интеграционных тестов, которые проверяют фактические веб-запросы. Например, я хотел бы проверить, что web.xml сопоставляет сервлеты и фильтры с ожидаемыми URL-адресами и проверяет, что мои JSP генерируют то, что я ожидаю.
Моя цель состояла в том, чтобы открыть локальный сервер разработки внутри JVM, от которого я мог бы запускать запросы. Однако я открыт для других стратегий интеграции; как я сказал выше, я просто хочу эффективно тестировать генерацию JSP и другие функции уровня запроса.
Мне удалось использовать DevAppServerFactory для запуска сервера разработки в той же JVM. Однако, похоже, что созданный DevAppServer использует отдельный загрузчик классов от основной JVM. Это делает тестирование намного более сложным - я не могу использовать какие-либо локальные классы Unitesting Local * TestConfig для управления поведением этого сервера. Точно так же я не могу "свернуть свои собственные" крючки для изменения поведения с помощью, например, statics, так как статика, которую я могу мутировать в тестовом жгуте, не является той же статистикой, на которую смотрит DevAppServer. Это делает сложным пропустить функции, не являющиеся центральными для текущего теста (например, для входа в систему), для ввода отказов, для приведения макетов и т.д. Это действительно ограничивает, насколько полностью и эффективно я могу проверить свой код.
Я нашел реальную нехватку документации в Интернете для тестирования интеграции с App Engine. Я уверен, что кто-то сделал это раньше... есть ли какие-либо советы или ресурсы, которые вы можете поделиться?