JSPCN主页 | JSP空间 | 网站制作 | JSP下载 | JSP论坛 | JSP教程 | 关于JSPCN | 联系我们
JSP虚拟主机,jsp空间,java空间,java虚拟空间,详细请点击进入
做最专业的JSP中文网站 当前位置首页--JSP技术--开发工具  
文章搜索:
关键字 标题
  
JSP中文网内容管理系统(JCMS)
JSP虚拟主机
网络笔记本
网摘,图片,笔记收藏
虚拟服务器

JSPCN文章目录分类
JSP配置[219]JSP基础[136]
中文问题[69]上传问题[27]
JAVABEAN[46]数据库[212]
文件操作[126]图片声音[17]
JSP其他[57]时间相关[16]
JAVAMAIL[72]STRUTS[144]
开发工具[28]教程系列[157]
JSP实例[89]
JAVA基础[421]APPLET[78]
JAVA网络[179]Applica[115]
Servlet[98]XML[163]
J2ME[257]J2EE[374]
考试相关[63]JAVA线程[90]
EJB[261]Swing[26]
Java API[141]声音图片[28]
异常处理[33]JAVA实例[290]
JAVA类[139]SUN[89]
Hibernate[6]JMX[8]
Spring[34]
本版推荐文章 
本版热点文章 
相关文章链接 
 
XFire Web服务的单元测试
作者:     文章来源:
访问次数:77次     加入时间:2007年04月09日
你不必发布到tomcat等容器中就可以进行测试,常用的测试类常继承AbstractXFireSpringTest 抽象类。AbstractXFireSpringTest 类又实现了AbstractXFireTest 类,AbstractXFireTest 类是TestCase的子类,所以你可以使用junit进行单元测试。
下面看一个例子:
  1. package com.kuaff.xfire.samples;
  2.  
  3. import java.net.URL;
  4.  
  5. import org.apache.xbean.spring.context.ClassPathXmlApplicationContext;
  6. import org.codehaus.xfire.client.Client;
  7. import org.codehaus.xfire.service.Endpoint;
  8. import org.codehaus.xfire.spring.AbstractXFireSpringTest;
  9. import org.jdom.Document;
  10. import org.springframework.context.ApplicationContext;
  11.  
  12. public class MathClientTest extends AbstractXFireSpringTest
  13. {
  14.     public void testService() throws Exception
  15.     {
  16.         Document wsdl = getWSDLDocument("MathService");
  17.         printNode(wsdl);
  18.     }
  19.    
  20.        
  21.     protected ApplicationContext createContext()
  22.     {
  23.         return new ClassPathXmlApplicationContext(new String[] {
  24.            "/org/codehaus/xfire/spring/xfire.xml",
  25.            "/META-INF/xfire/services.xml"
  26.         });
  27.     }
  28. }


你必须实现createContext方法,这个方法将得到应用上下文。在这个例子中返回了一个ClassPathXmlApplicationContext上下文,它通过类路径的下配置文件生成这个上下文对象。

剩下的工具就是写单元测试的方法,和junit的方式一样。getWSDLDocument方法可以获取指定Web服务的WSDL文档。如果你要测试发布的服务,还可以通过

invokeService方法测试:

  1. Document response = invokeService("MathService""Add.xml");
  2.  
  3.         addNamespace("k""http://www.kuaff.com/xfire/mathservice");
  4.         assertValid("//soap:Body/k:addResponse", response);
  5.         printNode(response);


通过assertValid方法可以通过Xpath查询的方式验证返回的xml文档是否和预期一致。

更详细的内容可以查看AbstractXFireTest的API。

 

在SpringSide这个开源项目中做了一个Web服务,它的单元测试代码如下:

  1. package org.springside.bookstore.service;
  2. import … …
  3.  
  4. public class XFireTest extends AbstractXFireSpringTest {
  5.  
  6.     protected final Log log = LogFactory.getLog(getClass());
  7.  
  8.     public void setUp() throws Exception {
  9.         super.setUp();
  10.     }
  11.  
  12.     public void testGetWsdl() throws Exception {
  13.         Document doc = getWSDLDocument("BookService");
  14.         assertValid("//xsd:complexType[@name="Book"]", doc);
  15.         assertValid("//xsd:complexType[@name="Category"]", doc);
  16.     }
  17.  
  18.     protected ApplicationContext createContext() {
  19.         return new ClassPathXmlApplicationContext(new String[]{"classpath*:applicationContext*.xml"});
  20.     }
  21. }
Copyright © 2002-2005 JSPCN.net. All rights reserved.
JSP中文网    备案序号:蜀ICP备05001583号
成都恒海科技发展有限公司    成都市一环路南二段6号新瑞楼三楼8号