[webservices开发]XFire Web服务的单元测试
2006-04-24 10:15
495 查看
你不必发布到tomcat等容器中就可以进行测试,常用的测试类常继承AbstractXFireSpringTest 抽象类。AbstractXFireSpringTest 类又实现了AbstractXFireTest 类,AbstractXFireTest 类是TestCase的子类,所以你可以使用junit进行单元测试。
下面看一个例子:
你必须实现createContext方法,这个方法将得到应用上下文。在这个例子中返回了一个ClassPathXmlApplicationContext上下文,它通过类路径的下配置文件生成这个上下文对象。
剩下的工具就是写单元测试的方法,和junit的方式一样。getWSDLDocument方法可以获取指定Web服务的WSDL文档。如果你要测试发布的服务,还可以通过
invokeService方法测试:
通过assertValid方法可以通过Xpath查询的方式验证返回的xml文档是否和预期一致。
更详细的内容可以查看AbstractXFireTest的API。
在SpringSide这个开源项目中做了一个Web服务,它的单元测试代码如下:
下面看一个例子:
package com.kuaff.xfire.samples; import java.net.URL; import org.apache.xbean.spring.context.ClassPathXmlApplicationContext; import org.codehaus.xfire.client.Client; import org.codehaus.xfire.service.Endpoint; import org.codehaus.xfire.spring.AbstractXFireSpringTest; import org.jdom.Document; import org.springframework.context.ApplicationContext; public class MathClientTest extends AbstractXFireSpringTest { public void testService() throws Exception { Document wsdl = getWSDLDocument("MathService"); printNode(wsdl); } protected ApplicationContext createContext() { return new ClassPathXmlApplicationContext(new String[] { "/org/codehaus/xfire/spring/xfire.xml", "/META-INF/xfire/services.xml" }); } } |
剩下的工具就是写单元测试的方法,和junit的方式一样。getWSDLDocument方法可以获取指定Web服务的WSDL文档。如果你要测试发布的服务,还可以通过
invokeService方法测试:
Document response = invokeService("MathService", "Add.xml"); addNamespace("k", "http://www.kuaff.com/xfire/mathservice"); assertValid("//soap:Body/k:addResponse", response); printNode(response); |
更详细的内容可以查看AbstractXFireTest的API。
在SpringSide这个开源项目中做了一个Web服务,它的单元测试代码如下:
package org.springside.bookstore.service; import … … public class XFireTest extends AbstractXFireSpringTest { protected final Log log = LogFactory.getLog(getClass()); public void setUp() throws Exception { super.setUp(); } public void testGetWsdl() throws Exception { Document doc = getWSDLDocument("BookService"); assertValid("//xsd:complexType[@name=/"Book/"]", doc); assertValid("//xsd:complexType[@name=/"Category/"]", doc); } protected ApplicationContext createContext() { return new ClassPathXmlApplicationContext(new String[]{"classpath*:applicationContext*.xml"}); } } |
相关文章推荐
- [webservices开发]XFire Web服务的单元测试
- [webservices开发]XFire Web服务的单元测试
- [webservices开发]使用XFire开发一个简单的web服务
- [webservices开发]使用XFire开发一个简单的web服务
- [webservices开发]使用XFire开发一个简单的web服务
- [webservices开发]使用xfire开发jsr181风格的web服务
- [webservices开发]使用xfire开发jsr181风格的web服务
- [webservices开发]使用XFire开发一个简单的web服务
- [webservices开发]使用xfire开发jsr181风格的web服务
- webservice-XFire开发一个简单的web服务
- XFire:开发Web服务的简单方式
- 使用xfire开发jsr181风格的web服务
- XFire:开发Web服务的简易之道--XFire简介 (转)
- Become.com的 Web Crawler: 一个超大规模的Java应用程序(想开发自己的搜索引擎增值服务的必读)
- 基于Web服务的应用、解决方案和开发平台
- iPhone开发技巧之网络--- Web服务
- [webservices开发]配置XFire
- 结合Axis和Ant开发Web服务
- soap web服务开发笔记
- 利用JAX-WS开发Web服务