使用Spring Mock测试Action中的方法

转载于:http://yedehua.iteye.com/blog/657156

 

使用包:spring-test.jar

ssh(struts1.x和struts2.x都差不多,只需把调用方法的参数修改就行)下测试:

Java代码 

package com.swcrm.service;


import junit.framework.TestCase;

import org.springframework.mock.web.MockHttpServletRequest;
import org.springframework.mock.web.MockHttpServletResponse;
import org.springframework.mock.web.MockServletContext;
import org.springframework.web.context.support.XmlWebApplicationContext;
import com.swcrm.action.SvsourceAction;

public class TestAction extends TestCase {

    private XmlWebApplicationContext ctx;

    public void setUp() {
        String[] paths = {
                "file:/D:/Documents and Settings/workspace/swcrm/WebRoot/WEB-INF/spring-config.xml" };
        ctx = new XmlWebApplicationContext();
        ctx.setConfigLocations(paths);
        ctx.setServletContext(new MockServletContext(""));
        ctx.refresh();
    }

    public void testGetUsers() throws Exception {
        MockHttpServletRequest request = new MockHttpServletRequest();
        MockHttpServletResponse response = new MockHttpServletResponse();
        request.addParameter("industry", "车行");
        SvsourceAction c = (SvsourceAction)ctx.getBean("/svsource");
        c.SvsourceList(null, null, request, response);
       
}
}

 

hibernate+spring下测试:

Java代码 
1.package com.swcrm.service;  
2. 
3.   
4.import junit.framework.TestCase;  
5. 
6.import org.springframework.mock.web.MockHttpServletRequest;  
7.import org.springframework.mock.web.MockHttpServletResponse;  
8.import org.springframework.mock.web.MockServletContext;  
9.import org.springframework.web.context.support.XmlWebApplicationContext;  
10.import com.swcrm.action.SvsourceAction;  
11. 
12.public class TestAction extends TestCase {  
13. 
14.    private XmlWebApplicationContext ctx;  
15. 
16.    public void setUp() {  
17.        String[] paths = {  
18.                "file:/D:/Documents and Settings/workspace/swcrm/WebRoot/WEB-INF/spring-config.xml" };  
19.        ctx = new XmlWebApplicationContext();  
20.        ctx.setConfigLocations(paths);  
21.        ctx.setServletContext(new MockServletContext(""));  
22.        ctx.refresh();  
23.    }  
24. 
25.    public void testGetUsers() throws Exception {  
26.        MockHttpServletRequest request = new MockHttpServletRequest();  
27.        MockHttpServletResponse response = new MockHttpServletResponse();  
28.        request.addParameter("industry", "车行");  
29.        SvsourceAction c = (SvsourceAction)ctx.getBean("svsource");  
30.        ModelAndView mav =c.SvsourceList(request, response);  
31.        Map m = mav.getModel();  
32.}  
33.} 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先非常感谢大家的评价啊!刚才还看到有人在下我的那个1.0版本.呵呵.这次设了一个资源分.(不高吧.)<br><br><br>更新历史:2.0<br>^_^.新写了一个版本.<br> 更新内容为:<br> 换掉了原来的数据库表结构.原来的是一个简单的用户表增删改查.主要是为了引入时间等字段,来试验一下struts2的时间标签是否好用.这次为了做成一个好点的实例.所以换掉了表结构.为歌词表.并附带2万首歌词的数据库.因为歌词插入数据太大.所以单另上传了.如果不需要这两万条数据的朋友可以光下该实例就好了.如果需要记录.则可以去下载记录集.(下载地址:http://download.csdn.net/source/513063)<br>create table HUBO_MUSIC<br>(<br> ID VARCHAR2(32) not null,<br> SINGER VARCHAR2(100),<br> MUSICNAME VARCHAR2(200),<br> LYRIC VARCHAR2(4000)<br>)<br><br> 优化了界面布局.(第一个写的是太丑了一点.)<br> 优化了action的相关方法逻辑和接口方法.<br> 更加好理解和清晰结构.增加了页面分页和后台分页方法<br> (如果看了我第一个例子的朋友.应该看到我在service层的find方法上的注释.说当前版本因为原来使用find方法是从代理取.而spring默认的数据持久话只能包含业务层和数据层.不能包含界面层.所以用find方法会导致session失效.故用get方法.现在这个问题已经解决.其实就是把原web.xml的最后的过滤器代码移到最顶端就可以了.具体查看代码)<br>更多内容可以关注我新建立的博客:http://blog.csdn.net/wuxinfengjing<br>我也是初学拉.就只是为了大家共同进步.<br><br><br><br>原1.0版本说文文字:<br>注:本代码为个人所写.全当练习使用.愿所有人能够更好地学习软件.愿意与所有软件爱好者成为好友.<br>邮箱:menxin32@163.com<br>当前版本1.0<br>包含内容:一个用户表格的增删改查实现.<br> 基本的七层分层框架.<br> 内写多个公共类.为了日后可以很好的解耦合.<br> 注释清晰.<br> 项目结构采用纯eclipse结构.可以直接导入.<br><br>查看说明:<br>当前只是自己看struts2的一点点资料随便写的一个简单的增删改查程序.全当给所有打算使用struts2却没有接触过的人一个入门而已.我也是初看.才2天而已.所以各位高手就不要笑话了.愿大家都能成为高手.<br><br><br>项目发布以后的第一个页面是登陆.后台代码没有写相关的验证代码.并不是读取数据库来登陆的.只要名字是admin就可以了.登陆过后就是用户列表.然后就可以实现与数据库的增删改查.项目使用7层分层框架.数据库连接配置文件是/s2sh/src/目录下面的jdbc.properties文件.直接配置即可.<br><br>以下是一些相关说明.<br><br><br>数据库脚本<br>create table HUBO_USER<br>(<br> ID VARCHAR2(32) not null,<br> NAME VARCHAR2(100),<br> BIRTHDAY DATE,<br> PASSWORD VARCHAR2(100),<br> EMAIL VARCHAR2(100),<br> REMARK VARCHAR2(500)<br>)<br><br>为了减小上传.所以没有上传导入的jar,其实就是默认的struts2和hibernate以及spring的包.该项目使用的jar包为以下.<br>spring-beans.jar <br>xwork-2.0.4.jar <br>spring-context.jar <br>ognl-2.6.11.jar <br>spring-web.jar <br>spring-core.jar <br>struts2-core-2.0.11.1.jar <br>commons-logging-1.0.4.jar <br>freemarker-2.3.8.jar <br>struts2-spring-plugin-2.0.11.1 <br>antlr-2.7.5H3.jar <br>asm.jar <br>asm-attrs.jar <br>cglib-2.1.3.jar <br>commons-collections-2.1.1.jar <br>dom4j-1.6.1.jar <br>ehcache-1.1.jar <br>hibernate3.jar <br>jaas.jar <br>jaxen-1.1-beta-7.jar <br>jdbc2_0-stdext.jar <br>jta.jar <br>log4j-1.2.11.jar <br>xerces-2.6.2.jar <br>xml-apis.jar <br>c3p0-0.9.0.jar <br>concurrent-1.3.2.jar <br>connector.jar <br>jboss-cache.jar <br>jboss-common.jar <br>jboss-jmx.jar <br>jboss-system.jar <br>jacc-1_0-fr.jar <br>jgroups-2.2.8.jar <br>oscache-2.1.jar <br>proxool-0.8.3.jar <br>swarmcache-1.0rc2.jar <br>classes12.jar <br>spring.jar <br>spring-aop.jar <br>spring-dao.jar <br>spring-hibernate.jar <br>spring-jdbc.jar <br>spring-mock.jar <br>spring-orm.jar <br>spring-remoting.jar <br>spring-support.jar <br>spring-webmvc.jar <br>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值