Интеграционные тесты для Google App Engine (java)

Я пытаюсь разработать несколько эффективных интеграционных тестов для моего приложения GAE/j. Я знаком сhttps://developers.google.com/appengine/docs/java/tools/localunittesting--эти инструменты отлично подходят для небольших модульных тестов. Теперь я заинтересован в разработке интеграционных тестов, которые проверяют реальные веб-запросы. Например, я хотел бы проверить, что web.xml сопоставляет сервлеты и фильтры с ожидаемыми URL-адресами, и проверить, что мои JSP генерируют то, что я ожидаю.

Моя цель состояла в том, чтобы запустить локальный сервер разработки внутри JVM, к которому я мог бы отправлять запросы. Однако я открыт для других стратегий интеграции; как я сказал выше, я просто хочу эффективно протестировать генерацию JSP и другие функции уровня запроса -.

Мне удалось использовать DevAppServerFactory для запуска сервера разработки в той же JVM. Однако похоже, что созданный DevAppServer использует отдельный загрузчик классов из основной JVM. Это значительно усложняет тестирование. --Я не могу использовать какие-либо локальные классы модульного тестирования Local *TestConfig для управления поведением этого сервера. Точно так же я не могу «свернуть свои собственные» хуки для изменения поведения, например. статики, так как статики, которые я могу изменить в тестовом наборе, не являются теми же статическими данными, на которые смотрит DevAppServer. Это затрудняет пропуск функций, не являющихся центральными для текущего теста (, например. требуется вход в систему ), для внедрения сбоев, для внедрения макетов и т. д. Это действительно ограничивает, насколько полно и эффективно я могу тестировать свой код.

Я обнаружил, что в Интернете очень мало документации по интеграционному тестированию с App Engine. Я уверен, что кто-то делал это раньше... есть ли какие-нибудь советы или ресурсы, которыми вы можете поделиться?

10
задан user1566136 31 July 2012 в 15:41
поделиться