`

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

 

 

0
0
分享到:
评论
2 楼 ysj5125094 2014-06-21  
java_web_hack1 写道
光测试Controller没用阿,
页面怎么测试,JSP怎么测试?

我还没用Junit测试过JSP呢,你知道怎么测试么?教教我。
1 楼 java_web_hack1 2014-06-18  
光测试Controller没用阿,
页面怎么测试,JSP怎么测试?

相关推荐

    Spring-mvc-showcase

    10. **单元测试与集成测试**:Spring-mvc-showcase 通常会包含测试代码,使用 JUnit 和 Spring Test 进行单元测试和集成测试,确保代码质量与功能正确性。 总的来说,Spring-mvc-showcase 是一个极好的学习资源,...

    基于Java的实例开发源码-Spring4GWT.zip

    6. **测试**:由于Spring和GWT都支持单元测试,开发者可能使用JUnit进行服务端测试,GWT Test Case进行客户端测试,确保代码质量。 7. **数据访问**:Spring的JdbcTemplate或JPA(Java Persistence API)可能用于...

    21天学通java EE 源代码

    CaseStudy-20-21.zip可能包含了第20至21章的内容,这通常会涵盖高级主题,如MVC框架(如Spring MVC)的应用,以及集成测试和部署策略。在这里,读者可以学习如何使用Spring框架进行依赖注入,以及如何配置和运行...

    my-app:在视图中使用 Spring Boot 和 JS 的 restServer

    我的应用程序在视图中使用 Spring Boot 和 JS 的 restServer 实现 Rest 服务的应用程序 Rest。 Rest服务器是用Spring Boot(服务器)、Spring REST(消费数据)实现的。... 还有一个模块 Spring MVC 来提供初始页

    Springrest-PracticeCheck:894359-Spring Rest Case研究

    【Springrest实践检查:894359-Spring Rest Case研究】 在本文中,我们将深入探讨Spring Rest的实践应用,以及如何通过实际案例来理解其核心概念和技术。Spring Rest是Spring框架的一部分,用于构建RESTful...

    intellij idea 的基本使用大全

    无论是基本的项目管理和构建,还是高级的功能如 Spring MVC 的整合,IntelliJ IDEA 都能提供强大的支持。通过熟悉上述的基本使用技巧和快捷键,开发者可以更加高效地利用 IntelliJ IDEA 进行开发。

    必联采购网java程序员笔试题.doc

    5. **Java表现层实现**:包括Servlet、JSP、Struts、Spring MVC等。每种方式都有其特点,如Servlet直接处理HTTP请求,JSP侧重于视图,Struts和Spring MVC提供更强大的MVC模式。熟悉程度和应用场景会影响选择。 6. *...

    case_shop

    理解如何在Java中实现MVC,例如使用Spring MVC框架,对于理解"case_shop"至关重要。 3. **Spring框架**:Spring是Java企业级应用开发的重要框架,提供依赖注入、AOP(面向切面编程)、事务管理等功能。"case_shop...

    【Java后端开发】教程及案例.docx

    - **Spring MVC**:熟悉Spring MVC框架的架构和组件,能够基于此框架开发Web应用程序。 - **Spring Boot**:学习Spring Boot框架的特点,了解其如何简化项目的配置过程,实现快速启动和部署。 2. **Hibernate/JPA...

    Java就业培训教程

    8. **Spring框架**:介绍Spring的核心模块,如依赖注入(DI)和控制反转(IoC),AOP(面向切面编程),以及Spring MVC用于Web开发的基本架构。 9. **其他进阶主题**:如Maven项目管理工具,单元测试框架JUnit,...

    java面试题库大全

    - **Spring框架**:依赖注入,AOP,Spring Boot,Spring MVC,Spring Data。 - **MyBatis框架**:SQL映射,动态SQL,事务管理。 - **Struts2或Spring MVC**:MVC架构,拦截器,国际化支持。 - **Hibernate**:...

    Case_study_Backend

    同时,Spring MVC模式被广泛用于构建Web应用,它将模型、视图和控制器分离,提高了代码的可维护性和可测试性。 数据库管理是后端开发的关键部分。MySQL或PostgreSQL可能是选择的数据库系统,它们都支持SQL语言,...

    java高级软件工程师面试题

    - **Spring框架**:掌握Spring IoC容器、Spring MVC、Spring Boot和Spring Security等,理解依赖注入(DI)和面向切面编程(AOP)。 - **Struts**:熟悉Struts1与Struts2的区别,理解MVC模式,掌握ActionForm、Action、...

    转行Java开发所需编程知识共2页.pdf.zip

    11. **Spring框架**:Spring是Java开发中广泛使用的框架,你需要学习依赖注入、AOP(面向切面编程)、Spring MVC以及Spring Boot。 12. **Web开发**:了解HTML、CSS和JavaScript基础知识,掌握Servlet、JSP技术,...

    Java实训项目.zip

    12. **Spring框架**:Spring是Java企业级应用的主流框架,涵盖IoC(控制反转)、AOP(面向切面编程)以及Spring Boot、Spring MVC等子模块,用于简化开发工作。 13. **微服务架构**:随着技术的发展,Java开发者...

    java学习资料(全方位)

    - **Web开发**:学习Servlet、JSP,以及现代的Web框架如Spring MVC、Thymeleaf。 - **数据库操作**:使用JDBC进行基本的CRUD操作,了解数据库设计和SQL优化。 - **分布式系统**:了解分布式缓存(如Redis)、消息...

    jianxian_JAVA源码_

    13. **Web开发**:如果涉及到Web应用,可能包含Servlet、JSP、过滤器、监听器等,如果是现代Web开发,可能有Spring Boot、Spring MVC、Thymeleaf等相关技术。 14. **日志系统**:如Log4j或SLF4J,用于记录程序运行...

    Java工程师不得不看的几千份代码

    代码中可能包含Spring MVC、Spring Boot、Spring Cloud等子项目的实战案例。 10. **数据库操作**:Java与数据库的交互通常通过JDBC或ORM框架如Hibernate、MyBatis完成。代码示例可能包含SQL查询、事务管理、连接池...

    JAVA项目实例

    12. **Spring框架**:如果项目使用了Spring,那么你需要了解依赖注入、AOP(面向切面编程)以及Spring Boot、Spring MVC等子框架。Spring生态广泛应用于企业级开发,能简化项目结构和提高开发效率。 以上只是部分...

    java面试题汇总

    - Spring框架:IoC、AOP的概念,Bean的管理,Spring MVC的使用。 - MyBatis:SQL映射,动态SQL,事务管理。 - JUnit和Mockito:单元测试的编写和模拟对象的使用。 以上只是部分Java面试中常见的知识点,面试中...

Global site tag (gtag.js) - Google Analytics