从NetBeans单元测试Web服务客户端

时间:2011-06-08 04:11:26

标签: java unit-testing junit jax-ws

我有一个包含ws客户端和服务(JAX-WS)的项目。有没有办法在自动化测试期间部署ws,以便我可以让我的客户端测试包含对服务的调用?

显然这需要部署到应用服务器......或者这种测试是不明智的?

2 个答案:

答案 0 :(得分:2)

我找到了解决这个问题的合适方案。使用嵌入式Tomcat(7.0.11),我能够在运行单元测试期间以编程方式成功部署我的Web服务。

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

这种方法很适合我,因为我想自动测试Web服务客户端。正如 Piyush 所指出的,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 :(得分:1)

  • 这是一个很好的article单元测试RESTful服务。您还可以使用REST-assured来测试REST服务并使用Java中的Junit验证响应。
  • 对于功能测试,您可以使用SOAPUI
  • 对于JAX-WS服务,请检查此article。您还可以检查测试JAX-WS here的Spring方法。您也可以按照here
  • 提及的文档从Netbeans进行单元测试

您是如何产生服务的? 他们是什么样的Web服务?您生成的服务不是常规POJO吗?