Kar*_*ran 3 java unit-testing spring-ws
我正在试图找出为Spring的WebService Template类编写单元测试的最佳方法.我要做的是检查以确保我为我的客户端生成的每个请求/响应类型正确连接这些类.我还想确保如果返回异常,则正确处理异常.
我想我想要做的是找出一种方法来进行实际的发送/接收呼叫.
有什么建议?
严格来说,单元测试根本不应该使用WebServiceTemplate.您的代码应该与WebServiceOperations界面对话,并且应该使用例如模拟对象进行单元测试.这不会进行网络调用,只会测试你编写的java.
您所描述的更好地称为集成测试,您可以测试您的接线是否正确完成,可能包括对真实Web服务的调用.
在这种情况下,集成测试补充了单元测试.我的建议 - 写两个.
我会发粘并回答我自己的问题.
经过一番深入研究后,我发现Spring WS 2.0有一个新的客户端测试框架,它完全符合我的希望(来自http://blog.springsource.com/2011/01/11/spring-web-services- 2-0发布/):
进行客户端集成测试的核心类是MockWebServiceServer.基本思想是Web服务模板连接到此模拟服务器,发送请求消息,模拟服务器然后根据注册的期望进行验证.如果满足期望,则模拟服务器然后准备响应消息,该消息被发送回模板.
测试客户端代码的典型方案包括:
- 创建MockWebServiceServer.
- 设置有关请求消息的期望.
- 创建适当的响应消息
- 正常使用WebServiceTemplate,直接通过客户端代码.
- 调用MockWebServiceServer.verify()以确保满足所有期望.
现在不幸的是我的项目仍然使用spring-ws 1.5.9.我将尝试将客户端升级到2.0并查看是否有任何中断.如果情况顺利,我可能会尽快尝试切换服务器端.