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
分享到:
相关推荐
10. **单元测试与集成测试**:Spring-mvc-showcase 通常会包含测试代码,使用 JUnit 和 Spring Test 进行单元测试和集成测试,确保代码质量与功能正确性。 总的来说,Spring-mvc-showcase 是一个极好的学习资源,...
6. **测试**:由于Spring和GWT都支持单元测试,开发者可能使用JUnit进行服务端测试,GWT Test Case进行客户端测试,确保代码质量。 7. **数据访问**:Spring的JdbcTemplate或JPA(Java Persistence API)可能用于...
CaseStudy-20-21.zip可能包含了第20至21章的内容,这通常会涵盖高级主题,如MVC框架(如Spring MVC)的应用,以及集成测试和部署策略。在这里,读者可以学习如何使用Spring框架进行依赖注入,以及如何配置和运行...
我的应用程序在视图中使用 Spring Boot 和 JS 的 restServer 实现 Rest 服务的应用程序 Rest。 Rest服务器是用Spring Boot(服务器)、Spring REST(消费数据)实现的。... 还有一个模块 Spring MVC 来提供初始页
【Springrest实践检查:894359-Spring Rest Case研究】 在本文中,我们将深入探讨Spring Rest的实践应用,以及如何通过实际案例来理解其核心概念和技术。Spring Rest是Spring框架的一部分,用于构建RESTful...
11. **Spring框架**:Spring是Java开发中广泛使用的框架,你需要学习依赖注入、AOP(面向切面编程)、Spring MVC以及Spring Boot。 12. **Web开发**:了解HTML、CSS和JavaScript基础知识,掌握Servlet、JSP技术,...
5. **Java表现层实现**:包括Servlet、JSP、Struts、Spring MVC等。每种方式都有其特点,如Servlet直接处理HTTP请求,JSP侧重于视图,Struts和Spring MVC提供更强大的MVC模式。熟悉程度和应用场景会影响选择。 6. *...
无论是基本的项目管理和构建,还是高级的功能如 Spring MVC 的整合,IntelliJ IDEA 都能提供强大的支持。通过熟悉上述的基本使用技巧和快捷键,开发者可以更加高效地利用 IntelliJ IDEA 进行开发。
理解如何在Java中实现MVC,例如使用Spring MVC框架,对于理解"case_shop"至关重要。 3. **Spring框架**:Spring是Java企业级应用开发的重要框架,提供依赖注入、AOP(面向切面编程)、事务管理等功能。"case_shop...
- **Spring MVC**:熟悉Spring MVC框架的架构和组件,能够基于此框架开发Web应用程序。 - **Spring Boot**:学习Spring Boot框架的特点,了解其如何简化项目的配置过程,实现快速启动和部署。 2. **Hibernate/JPA...
- **Spring框架**:依赖注入,AOP,Spring Boot,Spring MVC,Spring Data。 - **MyBatis框架**:SQL映射,动态SQL,事务管理。 - **Struts2或Spring MVC**:MVC架构,拦截器,国际化支持。 - **Hibernate**:...
- **Spring框架**:掌握Spring IoC容器、Spring MVC、Spring Boot和Spring Security等,理解依赖注入(DI)和面向切面编程(AOP)。 - **Struts**:熟悉Struts1与Struts2的区别,理解MVC模式,掌握ActionForm、Action、...
8. **Spring框架**:介绍Spring的核心模块,如依赖注入(DI)和控制反转(IoC),AOP(面向切面编程),以及Spring MVC用于Web开发的基本架构。 9. **其他进阶主题**:如Maven项目管理工具,单元测试框架JUnit,...
同时,Spring MVC模式被广泛用于构建Web应用,它将模型、视图和控制器分离,提高了代码的可维护性和可测试性。 数据库管理是后端开发的关键部分。MySQL或PostgreSQL可能是选择的数据库系统,它们都支持SQL语言,...
- **Web开发**:学习Servlet、JSP,以及现代的Web框架如Spring MVC、Thymeleaf。 - **数据库操作**:使用JDBC进行基本的CRUD操作,了解数据库设计和SQL优化。 - **分布式系统**:了解分布式缓存(如Redis)、消息...
12. **Spring框架**:Spring是Java企业级应用的主流框架,涵盖IoC(控制反转)、AOP(面向切面编程)以及Spring Boot、Spring MVC等子模块,用于简化开发工作。 13. **微服务架构**:随着技术的发展,Java开发者...
13. **Web开发**:如果涉及到Web应用,可能包含Servlet、JSP、过滤器、监听器等,如果是现代Web开发,可能有Spring Boot、Spring MVC、Thymeleaf等相关技术。 14. **日志系统**:如Log4j或SLF4J,用于记录程序运行...
16. **Spring全家桶**:理解Spring MVC、Spring AOP、Spring Security、Spring Cloud Config等Spring生态组件的使用。 17. **微服务**:熟悉Docker容器化部署,以及Kubernetes、Docker Compose等集群管理工具。 18...
11. **Spring框架**: Spring是企业级Java应用的主流框架,提供依赖注入、AOP(面向切面编程)、数据访问、Web MVC等功能。 12. **Maven构建工具**: Maven简化了Java项目的构建过程,通过POM.xml文件管理依赖,并...
代码中可能包含Spring MVC、Spring Boot、Spring Cloud等子项目的实战案例。 10. **数据库操作**:Java与数据库的交互通常通过JDBC或ORM框架如Hibernate、MyBatis完成。代码示例可能包含SQL查询、事务管理、连接池...