`
chen88358323
  • 浏览: 1819 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

Spring MVC实现Junit Case[ 转]

 
阅读更多
Spring MVC中编写单元测试(WEB项目):
转自:http://ysj5125094.iteye.com/blog/2082110


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





Java代码 
1.package com.sim.tracker.basecase; 
2. 
3.import org.junit.runner.RunWith; 
4.import org.springframework.test.context.ContextConfiguration; 
5.import org.springframework.transaction.annotation.Transactional; 
6.import org.springframework.test.context.junit4.AbstractTransactionalJUnit4SpringContextTests; 
7.import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; 
8. 
9./**
10.* 配置文件载入类 
11.* @ClassName: BaseSpringTestCase 
12.* @Description: 要想实现Spring自动注入,必须继承此类
13.* @author yusj  
14.* @date 2014年6月9日 下午3:16:44 
15.*
16. */ 
17.@RunWith(SpringJUnit4ClassRunner.class) 
18.@ContextConfiguration({ 
19.    "file:src/main/webapp/WEB-INF/config/applicationContext.xml", 
20.    "file:src/main/webapp/WEB-INF/config/captcha-context.xml", 
21.    "file:src/main/webapp/WEB-INF/config/springmvc-servlet.xml" 
22.}) 
23. 
24.// 添加注释@Transactional 回滚对数据库操作   
25.@Transactional 
26.public class BaseSpringTestCase { 
27.     
28.} 





用户登录测试方法UserControllerTest如下:





Java代码 
1.package com.sim.tracker.web.controller; 
2. 
3.import static org.junit.Assert.assertEquals; 
4.import static org.junit.Assert.fail; 
5. 
6.import java.sql.SQLException; 
7. 
8.import org.junit.Before; 
9.import org.junit.Ignore; 
10.import org.junit.Test; 
11.import org.springframework.beans.factory.annotation.Autowired; 
12.import org.springframework.mock.web.MockHttpServletRequest; 
13.import org.springframework.mock.web.MockHttpServletResponse; 
14. 
15.import com.sim.tracker.basecase.BaseSpringTestCase; 
16. 
17./**
18. * 
19.* @ClassName: UserControllerTest 
20.* @Description: 测试用户控制类  
21.* @author yusj 
22.* @date 2014年5月18日 
23.*
24. */ 
25.public class UserControllerTest extends BaseSpringTestCase { 
26. 
27.    // 模拟request,response 
28.    private MockHttpServletRequest request; 
29.    private MockHttpServletResponse response;  
30.     
31.    // 注入userController 
32.    @Autowired 
33.    private UserController userController ; 
34.     
35.    // 执行测试方法之前初始化模拟request,response 
36.    @Before   
37.    public void setUp(){   
38.        request = new MockHttpServletRequest();     
39.        request.setCharacterEncoding("UTF-8");     
40.        response = new MockHttpServletResponse();     
41.    }   
42.     
43.    /**
44.     * 
45.     * @Title:testLogin
46.     * @Description: 测试用户登录  
47.     * @author yusj   
48.     * @date 2014年5月18日
49.     */ 
50.    @Test 
51.    public void testLogin() { 
52.        String username= "aaaa" ; 
53.        String password = "bbbb" ;  
54.        try { 
55.            assertEquals("loginok",userController.login(username, password, request)) ; 
56.        } catch (SQLException e) { 
57.            e.printStackTrace(); 
58.        } 
59.    } 
60.} 





注意:如果是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> 



可以到http://www.mvnrepository.com/中输入关键字javax.servlet搜索下载。下载方式见我的另一篇文章:http://ysj5125094.iteye.com/blog/2082097
分享到:
评论

相关推荐

    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...

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

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

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

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

    intellij idea 的基本使用大全

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

    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面试题库大全

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

    java高级软件工程师面试题

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

    Java就业培训教程

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

    Case_study_Backend

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

    java学习资料(全方位)

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

    Java实训项目.zip

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

    jianxian_JAVA源码_

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

    java面试100题

    16. **Spring全家桶**:理解Spring MVC、Spring AOP、Spring Security、Spring Cloud Config等Spring生态组件的使用。 17. **微服务**:熟悉Docker容器化部署,以及Kubernetes、Docker Compose等集群管理工具。 18...

    java技术文档java技术文档sd

    11. **Spring框架**: Spring是企业级Java应用的主流框架,提供依赖注入、AOP(面向切面编程)、数据访问、Web MVC等功能。 12. **Maven构建工具**: Maven简化了Java项目的构建过程,通过POM.xml文件管理依赖,并...

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

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

Global site tag (gtag.js) - Google Analytics