У меня есть приложение GWT, с несколькими сервлетами на стороне сервера. Я хотел бы протестировать эти сервлеты (без необходимости делать тесты GUI с Selenium или любым другим веб-фреймворком). Или, другими словами, я хочу, чтобы тест имитировал клиентскую сторону GWT.
Естественные проблемы с тестированием сервлетов:
- Запуск веб-сервера,
- Моделирование клиента,
- Сервлеты возвращаются немедленно, передавая значение объекту AsyncCallback.
Пока мне удалось выяснить (хотя это еще не проверено), что:
1. Я могу запустить контейнер, расширив GWTTestCase
3. Я нашел документ Google о асинхронном тестировании , поэтому можно ждать асинхронного обратного вызова. Документы Google также упоминают это:
Тестирование на стороне сервера
Тесты, описанные выше, предназначены для помощи в тестировании кода на стороне клиента. Оболочка тестового набора GWTTestCase запустит сеанс в режиме разработки или веб-браузер для проверки сгенерированного JavaScript. С другой стороны, серверный код выполняется как собственная Java в JVM без преобразования в JavaScript, поэтому нет необходимости запускать тесты серверного кода, используя GWTTestCase в качестве базового класса для ваших тестов. Вместо этого используйте TestCase JUnit и другие связанные классы непосредственно при написании тестов для кода на стороне сервера вашего приложения. При этом вам может потребоваться покрытие кода GWTTestCase и TestCase, которое будет использоваться как на клиенте, так и на сервере.
Но нет примеров или более подробного объяснения, как этого достичь.
Я не понял, как симулировать клиента ... Есть идеи, как мне это сделать?
Или, если это не способ сделать это, есть ли другой способ? Я бы предпочел использовать собственные классы GWT, а не какие-то сторонние фреймворки для тестирования сервлетов.
Спасибо!