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
相关推荐
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...
无论是基本的项目管理和构建,还是高级的功能如 Spring MVC 的整合,IntelliJ IDEA 都能提供强大的支持。通过熟悉上述的基本使用技巧和快捷键,开发者可以更加高效地利用 IntelliJ IDEA 进行开发。
5. **Java表现层实现**:包括Servlet、JSP、Struts、Spring MVC等。每种方式都有其特点,如Servlet直接处理HTTP请求,JSP侧重于视图,Struts和Spring MVC提供更强大的MVC模式。熟悉程度和应用场景会影响选择。 6. *...
理解如何在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...
8. **Spring框架**:介绍Spring的核心模块,如依赖注入(DI)和控制反转(IoC),AOP(面向切面编程),以及Spring MVC用于Web开发的基本架构。 9. **其他进阶主题**:如Maven项目管理工具,单元测试框架JUnit,...
- **Spring框架**:依赖注入,AOP,Spring Boot,Spring MVC,Spring Data。 - **MyBatis框架**:SQL映射,动态SQL,事务管理。 - **Struts2或Spring MVC**:MVC架构,拦截器,国际化支持。 - **Hibernate**:...
同时,Spring MVC模式被广泛用于构建Web应用,它将模型、视图和控制器分离,提高了代码的可维护性和可测试性。 数据库管理是后端开发的关键部分。MySQL或PostgreSQL可能是选择的数据库系统,它们都支持SQL语言,...
- **Spring框架**:掌握Spring IoC容器、Spring MVC、Spring Boot和Spring Security等,理解依赖注入(DI)和面向切面编程(AOP)。 - **Struts**:熟悉Struts1与Struts2的区别,理解MVC模式,掌握ActionForm、Action、...
11. **Spring框架**:Spring是Java开发中广泛使用的框架,你需要学习依赖注入、AOP(面向切面编程)、Spring MVC以及Spring Boot。 12. **Web开发**:了解HTML、CSS和JavaScript基础知识,掌握Servlet、JSP技术,...
12. **Spring框架**:Spring是Java企业级应用的主流框架,涵盖IoC(控制反转)、AOP(面向切面编程)以及Spring Boot、Spring MVC等子模块,用于简化开发工作。 13. **微服务架构**:随着技术的发展,Java开发者...
- **Web开发**:学习Servlet、JSP,以及现代的Web框架如Spring MVC、Thymeleaf。 - **数据库操作**:使用JDBC进行基本的CRUD操作,了解数据库设计和SQL优化。 - **分布式系统**:了解分布式缓存(如Redis)、消息...
13. **Web开发**:如果涉及到Web应用,可能包含Servlet、JSP、过滤器、监听器等,如果是现代Web开发,可能有Spring Boot、Spring MVC、Thymeleaf等相关技术。 14. **日志系统**:如Log4j或SLF4J,用于记录程序运行...
代码中可能包含Spring MVC、Spring Boot、Spring Cloud等子项目的实战案例。 10. **数据库操作**:Java与数据库的交互通常通过JDBC或ORM框架如Hibernate、MyBatis完成。代码示例可能包含SQL查询、事务管理、连接池...
12. **Spring框架**:如果项目使用了Spring,那么你需要了解依赖注入、AOP(面向切面编程)以及Spring Boot、Spring MVC等子框架。Spring生态广泛应用于企业级开发,能简化项目结构和提高开发效率。 以上只是部分...
- Spring框架:IoC、AOP的概念,Bean的管理,Spring MVC的使用。 - MyBatis:SQL映射,动态SQL,事务管理。 - JUnit和Mockito:单元测试的编写和模拟对象的使用。 以上只是部分Java面试中常见的知识点,面试中...