`
这些年
  • 浏览: 388939 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Spring mvc + junit + mock

 
阅读更多

一 :直接测试方法

1. 首先开发一个基类,用于载入配置文件。以下所有的测试实现类都要继承这个类

import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.transaction.TransactionConfiguration;
import org.springframework.transaction.annotation.Transactional;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath*:dataSource-context.xml", "classpath*:persistence-context.xml",
		"classpath*:service-context.xml", "classpath*:mybatis-config.xml",
		"classpath*:src/main/webapp/WEB-INF/mvc-dispatcher-servlet.xml"
})
// 当然 你可以声明一个事务管理 每个单元测试都进行事务回滚 无论成功与否
@TransactionConfiguration(defaultRollback = true)
// 记得要在XML文件中声明事务哦~~~我是采用注解的方式
@Transactional
public class SpringMVCTestContent {

}

 2:对用户登入测试

 

      1):用户登入Controller

 

 

	@RequestMapping(value = "/user", method = RequestMethod.POST)
	public String userLogin(@RequestParam(value = "user_id", required = false) String userid,
			@RequestParam(value = "passwd", required = false) String passwd, HttpServletRequest request, Model model) {
		if (userid == null || passwd == null) {
			model.addAttribute("loginerror", "查无此人");
			return "login";
		}
                  // ........ 
			}

     2):测试类

import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.mock;

import org.junit.Before;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mock.web.MockHttpServletRequest;
import org.springframework.mock.web.MockHttpServletResponse;
import org.springframework.ui.Model;

import com.chinacache.SpringMVCTestContent;

public class LoginTest extends SpringMVCTestContent {
	// 模拟request,response
	private MockHttpServletRequest request;
	private MockHttpServletResponse response;

	// 注入userController
	@Autowired
	private LoginController loginController;

	// 执行测试方法之前初始化模拟request,response
	@Before
	public void setUp() {
		request = new MockHttpServletRequest();
		request.setCharacterEncoding("UTF-8");
		response = new MockHttpServletResponse();
	}

	@Test
	public void testLogin() {
		Model a = mock(Model.class); //mock  model对象 
		assertEquals("login", loginController.userLogin(null, null, request, a));
	}
}

 

以下摘自:http://ysj5125094.iteye.com/blog/2082110

注意:如果是Maven项目,当执行Maven install时,可能会报错误,造成不能正确生成war包。此时需要在pom.xml中加入如下配置:

 

Xml代码  收藏代码
  1. <project>  
  2.     <build>  
  3.         <plugins>  
  4.             <plugin>  
  5.                 <groupId>org.apache.maven.plugins</groupId>  
  6.                 <artifactId>maven-surefire-plugin</artifactId>  
  7.                  <configuration>  
  8.                      <testFailureIgnore>true</testFailureIgnore>  
  9.                  </configuration>  
  10.             </plugin>  
  11.         </plugins>  
  12.     </build>  
  13. </project>  

 

 

注意:因为模拟request,response需要javax.servlet,AsycnContext类的支持,所以还需要导入javax.servlet3.0 Jar包的支持。

maven pom.xml配置代码如下:

Xml代码  收藏代码
  1. <dependencies>  
  2.          <dependency>  
  3.         <groupId>javax.servlet</groupId>  
  4.         <artifactId>javax.servlet-api</artifactId>  
  5.         <version>3.1.0</version>  
  6.     </dependency>       
  7. </dependencies>  

 

分享到:
评论

相关推荐

    Junit 测试

    小的junit的测试实例,mock测试,对spring mvc中“c”的测试

    使用MyEclipse创建Spring Boot项目demo

    1)配置 web.xml,加载 Spring 和 Spring mvc 2)配置数据库连接、配置 Spring 事务 3)配置加载配置文件的读取,开启注解 4)配置日志文件 … n) 配置完成之后部署 tomcat 调试 可能你还需要考虑各个版本的...

    Spring.3.x企业应用开发实战(完整版).part2

    2.5.1 配置Spring MVC框架 2.5.2 处理登录请求 2.5.3 JSP视图页面 2.6 运行Web应用 2.7 小结 第2篇 IoC和AOP 第3章 IoC容器概述 3.1 IoC概述 3.1.1 通过实例理解IoC的概念 3.1.2 IoC的类型 3.1.3 通过容器完成依赖...

    Spring中文帮助文档

    2.5.1. Spring MVC合理的默认值 2.5.2. Portlet 框架 2.5.3. 基于Annotation的控制器 2.5.4. Spring MVC的表单标签库 2.5.5. 对Tiles 2 支持 2.5.6. 对JSF 1.2支持 2.5.7. JAX-WS支持 2.6. 其他 2.6.1. 动态...

    Spring API

    2.5.1. Spring MVC合理的默认值 2.5.2. Portlet 框架 2.5.3. 基于Annotation的控制器 2.5.4. Spring MVC的表单标签库 2.5.5. 对Tiles 2 支持 2.5.6. 对JSF 1.2支持 2.5.7. JAX-WS支持 2.6. 其他 2.6.1. 动态...

    Spring3.x企业应用开发实战(完整版) part1

    2.5.1 配置Spring MVC框架 2.5.2 处理登录请求 2.5.3 JSP视图页面 2.6 运行Web应用 2.7 小结 第2篇 IoC和AOP 第3章 IoC容器概述 3.1 IoC概述 3.1.1 通过实例理解IoC的概念 3.1.2 IoC的类型 3.1.3 通过容器完成依赖...

    SpringSpringMvcMybatis

    ################ tips:################Spring MVC测试 测试Web项目不需要启动项目:需要servlet相关的模拟对象,比如: MockMVC,MockHttpServletRequest,MockHttpServletResponse,MockHttpSession 引入一个概念:...

    spring-framework-reference-4.1.2

    3. New Features and Enhancements in Spring Framework 4.0 ............................................ 17 3.1. Improved Getting Started Experience .........................................................

    271个java需要用的jar包

    spring-webmvc-3.2.8.RELEASE.jar spring.jar standard-1.1.2.jar standard.jar stax2-api-3.1.1.jar struts-core-1.3.10.jar struts-el.jar struts.jar struts2-codebehind-plugin-2.3.15.3.jar struts2-config-...

    spring-framework-reference4.1.4

    3. New Features and Enhancements in Spring Framework 4.0 ............................................ 17 3.1. Improved Getting Started Experience .........................................................

Global site tag (gtag.js) - Google Analytics