Web服务单元测试

13

我正在使用JAX-WS Web服务(客户端和暴露的服务),是否有API可以测试这些Web服务?

4个回答

7

JAX-WS Web服务是带注释的POJO,因此您可以使用常规单元测试框架(JUnit、TestNG)和模拟来对它们进行(隔离的)单元测试。


2
@Downvoter 能解释一下吗?对这个答案进行负评是一个纯粹的玩笑(顺便说一下,这表明你对单元测试的含义一无所知)。 - Pascal Thivent
不完全是这样。它们被“注释”了,这意味着它们在这方面不仅仅是普通的Java对象。它们还附加了直接附加到它们上的其他元数据,这会改变它们的行为。这些东西不能通过直接测试它们作为普通对象来捕获。有一些需要测试的东西,比如安全约束、事务交互、异步调用等等。所有这些都是将业务逻辑与Web服务的公开混合的问题的一部分。 - Andrew T Finnell

5
  • 在"Web服务"环境外测试服务。
  • 使用WSUnit测试消费者。
  • 查看这篇文章

单元测试旨在测试代码单元。应该测试业务逻辑,而不是基础设施。因此,在web服务环境内测试服务时,这并不完全是"单元测试"。


那么,你会如何称呼通过端点启动服务并测试其的测试呢? :) 另外,wsunit链接是404吗? - rogerdpack
更广泛地说,可能是“集成测试”。我已经修复了链接。 - Bozho

4

针对功能测试 - 你可以使用类似soapUI的工具(但我不建议使用此选项,因为使用该工具创建的测试非常难以维护)。另一个选择(推荐)是使用JUnit测试,在其中创建服务+客户端并执行服务方法。在我们的项目中,我们使用Apache CXF,它运行良好。它也支持JAX-WS。

针对单元测试 - 使用 "常规" JUnit,因为生成的服务是普通Java对象。



网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接