Модульное тестирование клиента веб-службы из NetBeans

#java #unit-testing #junit #jax-ws

#java #модульное тестирование #junit #jax-ws

Вопрос:

У меня есть проект, который содержит как клиент ws, так и службу (JAX-WS). Есть ли способ развернуть ws во время автоматического тестирования таким образом, чтобы мои клиентские тесты охватывали вызовы службы?

Очевидно, что для этого потребуется развертывание на сервере приложений… или такое тестирование является опрометчивым?

Ответ №1:

Я нашел подходящее решение этой проблемы. Используя встроенный Tomcat (7.0.11), я смог успешно развернуть свой веб-сервис программно во время выполнения модульного теста.

 tomcat = new Tomcat();
tomcat.setBaseDir(".");
tomcat.setPort(8084);
tomcat.addWebapp("/", System.getProperty("user.dir")   "/build/web");
tomcat.setHostname("localhost");
tomcat.enableNaming();
tomcat.start();
  

Этот подход мне хорошо подошел, поскольку я хотел автоматизировать тестирование клиента веб-службы. Как отметил Пиюш, SoapUI — это идеальный способ выполнить интеграционное тестирование.

Редактировать

Если вы используете context.xml , вам нужно будет определить его следующим образом:

 Context ctx = tomcat.addWebapp("/", System.getProperty("user.dir")   "/build/web");
File contextFile = new File("META-INF/context.xml");
ctx.setConfigFile(contextFile);
  

Комментарии:

1. Будет ли то же самое с Glassfish?

Ответ №2:

  • Это хорошая статья о модульном тестировании RESTful service. Вы также можете использовать REST-assured для тестирования служб REST и проверки ответа с помощью Junit в Java.
  • Для функционального тестирования вы можете использовать SOAPUI.
  • Для служб JAX-WS ознакомьтесь с этой статьей. Вы также можете проверить, как Spring тестирует JAX-WS здесь. Вы также можете выполнить модульное тестирование из Netbeans, следуя документации, упомянутой здесь

Как вы создаете свой сервис? Что это за веб-службы? Разве созданный вами сервис не является обычным POJO?