Spring MVC实现Junit Case
Spring MVC中编写单元测试(WEB项目):
1. 首先开发一个基类,用于载入配置文件。以下所有的测试实现类都要继承这个类
- package com.yusj.basecase;
 - import org.junit.runner.RunWith;
 - import org.springframework.test.context.ContextConfiguration;
 - import org.springframework.transaction.annotation.Transactional;
 - import org.springframework.test.context.junit4.AbstractTransactionalJUnit4SpringContextTests;
 - import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
 - /**
 - * 配置文件载入类
 - * @ClassName: BaseSpringTestCase
 - * @Description: 要想实现Spring自动注入,必须继承此类
 - * @author yusj
 - * @date 2014年6月9日 下午3:16:44
 - *
 - */
 - @RunWith(SpringJUnit4ClassRunner.class)
 - @ContextConfiguration({
 - "file:src/main/webapp/WEB-INF/config/applicationContext.xml",
 - "file:src/main/webapp/WEB-INF/config/captcha-context.xml",
 - "file:src/main/webapp/WEB-INF/config/springmvc-servlet.xml"
 - })
 - // 添加注释@Transactional 回滚对数据库操作
 - @Transactional
 - public class BaseSpringTestCase {
 - }
 
用户登录测试方法UserControllerTest如下:
- package com.yusj.web.controller;
 - import static org.junit.Assert.assertEquals;
 - import static org.junit.Assert.fail;
 - import java.sql.SQLException;
 - import org.junit.Before;
 - import org.junit.Ignore;
 - import org.junit.Test;
 - import org.springframework.beans.factory.annotation.Autowired;
 - import org.springframework.mock.web.MockHttpServletRequest;
 - import org.springframework.mock.web.MockHttpServletResponse;
 - import com.sim.tracker.basecase.BaseSpringTestCase;
 - /**
 - *
 - * @ClassName: UserControllerTest
 - * @Description: 测试用户控制类
 - * @author yusj
 - * @date 2014年5月18日
 - *
 - */
 - public class UserControllerTest extends BaseSpringTestCase {
 - // 模拟request,response
 - private MockHttpServletRequest request;
 - private MockHttpServletResponse response;
 - // 注入userController
 - @Autowired
 - private UserController userController ;
 - // 执行测试方法之前初始化模拟request,response
 - @Before
 - public void setUp(){
 - request = new MockHttpServletRequest();
 - request.setCharacterEncoding("UTF-8");
 - response = new MockHttpServletResponse();
 - }
 - /**
 - *
 - * @Title:testLogin
 - * @Description: 测试用户登录
 - * @author yusj
 - * @date 2014年5月18日
 - */
 - @Test
 - public void testLogin() {
 - String username= "aaaa" ;
 - String password = "bbbb" ;
 - try {
 - assertEquals("loginok",userController.login(username, password, request)) ;
 - } catch (SQLException e) {
 - e.printStackTrace();
 - }
 - }
 - }
 
注意:如果是Maven项目,当执行Maven install时,可能会报错误,造成不能正确生成war包。此时需要在pom.xml中加入如下配置:
- <project>
 - <build>
 - <plugins>
 - <plugin>
 - <groupId>org.apache.maven.plugins</groupId>
 - <artifactId>maven-surefire-plugin</artifactId>
 - <configuration>
 - <testFailureIgnore>true</testFailureIgnore>
 - </configuration>
 - </plugin>
 - </plugins>
 - </build>
 - </project>
 
注意:因为模拟request,response需要javax.servlet,AsycnContext类的支持,所以还需要导入javax.servlet3.0 Jar包的支持。
maven pom.xml配置代码如下:
- <dependencies>
 - <dependency>
 - <groupId>javax.servlet</groupId>
 - <artifactId>javax.servlet-api</artifactId>
 - <version>3.1.0</version>
 - </dependency>
 - </dependencies>
 
可以到http://www.mvnrepository.com/中输入关键字javax.servlet搜索下载。下载方式见我的另一篇文章:http://ysj5125094.iteye.com/blog/2082097
Spring MVC实现Junit Case的更多相关文章
- spring mvc 和junit 4集成的注意点
		
常规步骤: 1.导入jar包,主要有两个,spring-test 和 junit4,主要用maven管理,直接依赖即可.可以在这个网站上进行查找或下载:http://mvnrepository.com ...
 - Spring mvc中junit测试遇到com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException错误怎么解决
		
今天遇到图片中的错误,纠结了一下,弄清楚了怎么从控制台中读取错误信息,并修改错误. com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: ...
 - Spring MVC 项目搭建 -2- 添加service ,dao,junit
		
Spring MVC 项目搭建 -2- 添加service ,dao,junit 1.dao public class Hero { private String name; public Strin ...
 - JUnit+Mockito结合测试Spring MVC Controller
		
[本文出自天外归云的博客园] 概要简述 利用JUnit结合Mockito,再加上spingframework自带的一些方法,就可以组合起来对Spring MVC中的Controller层进行测试. 在 ...
 - spring Mvc + Mybatis 中使用junit
		
在Spring Mvc + Mybatis的项目中我们有时候需要在测试代码中注入Dao操作数据库,对表进行增删改查,实现如下: 这是一般的maven项目项目结构 测试代码一般写在src/test/ja ...
 - 基于Spring + Spring MVC + Mybatis + shiro 高性能web构建
		
一直想写这篇文章,前段时间 痴迷于JavaScript.NodeJs.AngularJS,做了大量的研究,对前后端交互有了更深层次的认识. 今天抽个时间写这篇文章,我有预感,这将是一篇很详细的文章,详 ...
 - Spring MVC 学习总结(一)——MVC概要与环境配置
		
一.MVC概要 MVC是模型(Model).视图(View).控制器(Controller)的简写,是一种软件设计规范,用一种将业务逻辑.数据.显示分离的方法组织代码,MVC主要作用是降低了视图与业务 ...
 - [转]基于Spring + Spring MVC + Mybatis 高性能web构建
		
http://blog.csdn.net/zoutongyuan/article/details/41379851/ 一直想写这篇文章,前段时间 痴迷于JavaScript.NodeJs.Angula ...
 - 基于Spring + Spring MVC + Mybatis 高性能web构建
		
基于Spring + Spring MVC + Mybatis 高性能web构建 一直想写这篇文章,前段时间 痴迷于JavaScript.NodeJs.AngularJs,做了大量的研究,对前后端交互 ...
 
随机推荐
- iredmail安装脚本分析(一)---iRedmail.sh
			
iredmail是一套以postfix为核心的整合邮件系统的安装脚本,可以达到快速部署邮件服务器的目的.为了让自己不遗忘shell的语法,所以闲来无事,学习一下他的代码. 我从官网下载他的最新版,解压 ...
 - 《The Evolution of Lua》读书笔记 1
			
lua的优点: 可移植性 容易嵌入 体积小 高效率 这些优点都来自于lua的设计目标:简洁.从Scheme获得了很多灵感,包括匿名函数,合理的语义域概念 lua前身: 巴西被禁运,引入计算机软件和 ...
 - jQuery获取带点的id元素
			
一般jQuery获取某个id为elem元素,只需用$('#elem')就行了,但是如果id中不小心包括了'.' ,那么我吗就会发现这时候jQuery就不能获取到这个元素了.但是使用dom原生的getE ...
 - 当padding,margin,top为百分比值,具体数值如何计算
			
padding以及margin的四个方向设置值为百分数的时候,是以父元素的宽度为基数来进行计算. (为了保持横向和纵向方向上的margin/padding一致,但是其实也不是一定以父元素的宽度为参照物 ...
 - java 中List.subList 总结
			
今天,维护以前的代码,看到了List.subList这个方法,以前没接触过,对这个就是个小白,今天学习下: java.util.List中有一个subList方法,用来返回一个list的一部分的视图. ...
 - Angular2 CLI 快速开发
			
Angular2 CLI 快速开发 http://www.tuicool.com/articles/z6V3Ubz 解决npm 的 shasum check failed for错误(npm注册国内镜 ...
 - dandelion datatables : Page index must not be less than zero!
			
java.lang.IllegalArgumentException: Page index must not be less than zero! at org.springframework.da ...
 - 补交作业——Beta发布评论
			
1.飞天小女警: 礼物挑选这一项目是很好的点子,比较能够吸引客户,更加方便快捷的挑选也满足现代人在送礼物方面的需求.这一次的发布界面效果好了很多,并且成功的发布到了云服务器上. 2.nice! : 这 ...
 - Struts2向值栈中压入属性的方式
			
Struts2在初始化Action的时候会先向值栈中压入一个action对象,里面包含了各个属性,这些属性是怎么被压进去的?或者说是根据什么来压入的?直到2016年5月5日才理解,原来是在初始化act ...
 - android studio入门
			
目前的工作是蓝牙相关的,所以最近心血来潮想折腾下Android开发,方便调试自己的固件, 装好Android Studio跟SDK之后,感谢nordic的公开代码,研究了一会,感觉并没有多费劲 相关的 ...