java - 对来自 NetBeans 的 Web 服务客户端进行单元测试

标签 java unit-testing junit jax-ws

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

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

最佳答案

我找到了解决这个问题的合适方法。使用嵌入式 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);

关于java - 对来自 NetBeans 的 Web 服务客户端进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6274128/

相关文章:

java - 使用DriverManager测试数据库连接(java)

node.js - Jenkins不生成测试报告文件

java - Android 在应用程序中运行 bash 命令

java - onBackpressed() 中的问题

javascript - Jest 单元测试 - 测试 setState()

java - 如何验证静态 void 方法是否已使用 power mockito 调用

java - 在 Java TimerTask 中连续无延迟地运行任务

java - 与玩家一起移动绳索 Swing

angularjs - Jasmine 。 angular.service 。 Angular promise 。怎样才能让他们一起玩呢?

java - intellij junit @RunWith 未解决