转自:http://www.cnblogs.com/rainisic/archive/2012/01/22/Spring_Test_Framework.html
这两天做Web开发,发现通过Spring进行对象管理之后,做测试变得复杂了。因为所有的Bean都需要在applicationContext.xml中加载好,之后再通过@Resource去取得。如果每次都要整个业务流做的差不多了再去测试,这样效率很低,也很麻烦。如果单独去写一个测试用类,这样太繁琐了。于是想起Spring有一个测试框架,能够整合JUnit进行测试,于是便拿出来试试~
废话不多说,教程直接开始。
1. 加入依赖包
使用Spring的测试框架需要加入以下依赖包:
- JUnit 4 (官方下载:https://github.com/KentBeck/junit/downloads)
- Spring Test (Spring框架中的test包)
- Spring 相关其他依赖包(不再赘述了,就是context等包)
2. 创建测试源目录和包
在此,推荐创建一个和src平级的源文件目录,因为src内的类都是为日后产品准备的,而此处的类仅仅用于测试。而包的名称可以和src中的目录同名,这样由于在test源目录中,所以不会有冲突,而且名称又一模一样,更方便检索。
3. 创建测试类
创建一个测试用的类,推荐名称为 “被测试类名称 + Test”。
测试类应该继承与 AbstractJUnit4SpringContextTests 或 AbstractTransactionalJUnit4SpringContextTests
对于 AbstractJUnit4springcontextTests 和 AbstractTransactionalJUnit4SpringContextTests 类的选择:
如果再你的测试类中,需要用到事务管理(比如要在测试结果出来之后回滚测试内容),就可以使用AbstractTransactionalJUnit4SpringTests类。事务管理的使用方法和正常使用Spring事务管理是一样的。再此需要注意的是,如果想要使用声明式事务管理,即使用AbstractTransactionalJUnitSpringContextTests类,请在applicationContext.xml文件中加入transactionManager bean:
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
如果没有添加上述bean,将会抛出NoSuchBeanDefinitionException,指明 No bean named 'transactionManager' is definded.
4. 配置测试类
添加如下内容在class前,用于配置applicationContext.xml文件的位置。
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:applicationContext.xml")
5. 创建测试方法
创建测试用方法,推荐名称为 “被测方法名称+ Test”。
测试方法上方加入 @Test
6. 通过JUnit 4 执行
右键方法名,选择则“Run As”→“JUnit Test”即可
附录1:整体测试类文件
/* @(#) UserDaoTest.java
*
* Date: 2012-1-16
*
* Author: Rainisic
*/
package com.mb.dao;
import javax.annotation.Resource;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import com.mb.entity.User;
/**
* @author Rainisic
*
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:applicationContext.xml")
public class UserDaoTest extends AbstractJUnit4SpringContextTests {
@Resource
private UserDaoInterface userDao;
@Test
public void saveTest() {
User user1 = new User();
user1.setUsername("rainisic");
user1.setPassword("123456");
user1.setNickName("rainisic");
user1.setEmail("rainisic@gmail.com");
User user2 = new User();
user2.setUsername("admin");
user2.setPassword("123456");
user2.setNickName("admin");
user2.setEmail("admin@admin.com");
User user3 = new User();
user3.setUsername("test");
user3.setPassword("123456");
user3.setNickName("test");
user3.setEmail("test@gmail.com");
userDao.save(user1);
userDao.save(user2);
userDao.save(user3);
}
}
OK,到此为止就可以使用Spring的测试框架了。
相关推荐
Spring框架由多个模块组成,如Core Container(核心容器)、Data Access/Integration(数据访问/集成)、Web、AOP(面向切面编程)、Test等。每个模块都有相应的jar包,例如`spring-context.jar`提供了上下文支持,`...
6. **测试**:"spring-boot-sample-test"提供了单元测试和集成测试的示例,使用Spring Boot的测试支持库,可以方便地进行MockMVC和WebApplicationContext测试。 7. **国际化**:"spring-boot-sample-i18n"解释了...
6. **测试框架升级**:Spring Test和Spring Boot Test模块得到了改进,提供了更强大的测试工具和更易用的API,便于编写单元测试和集成测试。 7. **错误处理和异常处理**:错误页面和异常处理机制进行了优化,可以更...
文档文件是理解任何框架的关键,Spring4.3的文档可能包含官方参考文档、API文档和教程。官方参考文档详细解释了框架的每个部分,包括如何配置、如何使用各种特性,以及最佳实践。API文档,如Javadoc,提供了类、接口...
本教程聚焦于Spring Boot 2.4版本,针对初学者提供一个完整的RESTful CRUD(创建、读取、更新、删除)操作实例,结合尚硅谷B站教程进行讲解。对于已经熟悉Spring Boot 1.5的老手来说,这个教程可能会揭示2.4版本的...
`spring-test-examples`这个项目就是针对Spring框架的测试用例集合,旨在帮助开发者理解和掌握如何在实际项目中进行有效的测试。这里我们将深入探讨Spring测试的核心知识点,包括Spring Test、Spring Boot测试、...
Spring Test模块在5.3.2中包含了更多测试工具和API,使得单元测试和集成测试更加简单高效。支持模拟对象、Web测试客户端和针对Spring Boot应用的测试支持,有助于确保代码质量。 8. **模块化设计** Spring ...
《尚硅谷-佟刚-spring使用的spring-framework-4.0.0.RELEASE》是一个关于Spring框架的教程资源,其中特别关注了Spring与Hibernate的整合。在这个版本中,Spring Framework 4.0.0.RELEASE提供了对Hibernate的支持,...
对于测试,Spring Boot也提供了spring-boot-starter-test启动器,该启动器集成了JUnit、Hamcrest和Mockito等库,便于开发者编写测试用例。 Spring Boot的起步依赖遵循一个命名规则,即spring-boot-starter-加上应用...
* 在IDEA中创建一个新的Maven项目,例如springboot-test 3. 配置pom.xml * 添加java版本配置:<properties> <java.version>1.8</java.version></properties> * 添加依赖管理:<dependencyManagement>... * 添加...
6. **测试框架**:Spring Test模块和Spring Boot Test Suite提供了全面的测试支持,包括单元测试、集成测试和端到端测试。5.3.0可能引入了新的测试工具和改进的测试API,以帮助开发者编写更健壮的测试。 7. **...
开发者可以使用spring-boot-starter-test起始器依赖项来包含常用的测试库,如JUnit、Hamcrest和Mockito等。 总结来说,Spring Boot通过自动配置、起始器依赖项、内嵌服务器和监控管理等功能,大大简化了基于Spring...
### Sharding-JDBC 教程:Spring Boot 整合 Sharding-JDBC 实现读写分离 #### 一、Sharding-JDBC 和 Spring Boot 的简介 **Sharding-JDBC** 是阿里巴巴开源的一个轻量级 Java 框架,主要用于对数据库进行分片、...
- **文档和教程**:文档的改进和新教程的增加代表了Spring社区对知识分享的重视,有助于开发者学习和使用Spring。 - **Spring与Java EE标准的整合**:Spring支持了Java EE 6的特性,体现了Spring与Java EE标准之间...
此外,Spring 社区还提供了大量的教程、文档和示例,帮助开发者更好地理解和使用这个强大的框架。无论是初学者还是经验丰富的开发者,Spring Framework 都能提供一套完整的解决方案,助力构建高质量的企业级应用。
在"spring-framework-2.0.7案例"中,可能包含了一些演示如何使用Spring 2.0.7进行开发的实际项目或教程。这些示例可能涵盖了以下主题: 1. **IoC容器的使用**:展示了如何创建Bean定义,以及如何通过XML或注解方式...
Spring Boot提供了测试工具和注解,如`@SpringBootTest`、`@WebMvcTest`等,方便进行单元测试和集成测试。 10. **Spring Data**: Spring Boot与Spring Data的整合,简化了数据访问,包括JPA、MongoDB、Couchbase...
《Spring Boot中文开发指南》是一本专为中文开发者编写的实战型教程,旨在帮助读者深入理解和熟练运用Spring Boot这一强大的Java开发框架。Spring Boot简化了Spring应用的初始搭建以及开发过程,通过“约定优于配置...
6. **社区支持**:Spring拥有庞大的开发者社区,提供了丰富的教程、示例代码和插件,使得学习和使用Spring变得更加容易。 总的来说,"Spring5.0下载官网下载包"为开发者提供了构建高效、灵活和可扩展的Java应用所需...
实际上,这只是Spring Batch文档的教程实现,但我想在此基础上进行扩展以作为演讲的基础。 通过Spring Boot实现。 指示 要生成可执行jar,只需使用maven执行程序包目标即可: mvn clean package 要运行批处理的...