`

Spring-Test教程

阅读更多

转自:http://www.cnblogs.com/rainisic/archive/2012/01/22/Spring_Test_Framework.html

这两天做Web开发,发现通过Spring进行对象管理之后,做测试变得复杂了。因为所有的Bean都需要在applicationContext.xml中加载好,之后再通过@Resource去取得。如果每次都要整个业务流做的差不多了再去测试,这样效率很低,也很麻烦。如果单独去写一个测试用类,这样太繁琐了。于是想起Spring有一个测试框架,能够整合JUnit进行测试,于是便拿出来试试~

  废话不多说,教程直接开始。

1. 加入依赖包

  使用Spring的测试框架需要加入以下依赖包

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-5.3.9-dist.zip(spring-framework-5.3.9)

    Spring框架由多个模块组成,如Core Container(核心容器)、Data Access/Integration(数据访问/集成)、Web、AOP(面向切面编程)、Test等。每个模块都有相应的jar包,例如`spring-context.jar`提供了上下文支持,`...

    spring-boot-samples-master

    6. **测试**:"spring-boot-sample-test"提供了单元测试和集成测试的示例,使用Spring Boot的测试支持库,可以方便地进行MockMVC和WebApplicationContext测试。 7. **国际化**:"spring-boot-sample-i18n"解释了...

    spring-5.2.8.RELEASE-dist.zip

    6. **测试框架升级**:Spring Test和Spring Boot Test模块得到了改进,提供了更强大的测试工具和更易用的API,便于编写单元测试和集成测试。 7. **错误处理和异常处理**:错误页面和异常处理机制进行了优化,可以更...

    Spring4.3完整官网下载的完整包

    文档文件是理解任何框架的关键,Spring4.3的文档可能包含官方参考文档、API文档和教程。官方参考文档详细解释了框架的每个部分,包括如何配置、如何使用各种特性,以及最佳实践。API文档,如Javadoc,提供了类、接口...

    spring-boot-04-web-restfulcrud

    本教程聚焦于Spring Boot 2.4版本,针对初学者提供一个完整的RESTful CRUD(创建、读取、更新、删除)操作实例,结合尚硅谷B站教程进行讲解。对于已经熟悉Spring Boot 1.5的老手来说,这个教程可能会揭示2.4版本的...

    spring-test-examples:这是包含我在Spring教程中测试的示例的存储库

    `spring-test-examples`这个项目就是针对Spring框架的测试用例集合,旨在帮助开发者理解和掌握如何在实际项目中进行有效的测试。这里我们将深入探讨Spring测试的核心知识点,包括Spring Test、Spring Boot测试、...

    官方源码 spring-framework-5.3.2.zip

    Spring Test模块在5.3.2中包含了更多测试工具和API,使得单元测试和集成测试更加简单高效。支持模拟对象、Web测试客户端和针对Spring Boot应用的测试支持,有助于确保代码质量。 8. **模块化设计** Spring ...

    尚硅谷-佟刚-spring使用的spring-framework-4.0.0.RELEASE

    《尚硅谷-佟刚-spring使用的spring-framework-4.0.0.RELEASE》是一个关于Spring框架的教程资源,其中特别关注了Spring与Hibernate的整合。在这个版本中,Spring Framework 4.0.0.RELEASE提供了对Hibernate的支持,...

    无涯教程(LearnFk)-Spring-Boot教程完整离线版.pdf

    对于测试,Spring Boot也提供了spring-boot-starter-test启动器,该启动器集成了JUnit、Hamcrest和Mockito等库,便于开发者编写测试用例。 Spring Boot的起步依赖遵循一个命名规则,即spring-boot-starter-加上应用...

    Spring-Boot框架初步搭建

    * 在IDEA中创建一个新的Maven项目,例如springboot-test 3. 配置pom.xml * 添加java版本配置:&lt;properties&gt; &lt;java.version&gt;1.8&lt;/java.version&gt;&lt;/properties&gt; * 添加依赖管理:&lt;dependencyManagement&gt;... * 添加...

    官方原版完整包 spring-framework-5.3.0.RELEASE.zip

    6. **测试框架**:Spring Test模块和Spring Boot Test Suite提供了全面的测试支持,包括单元测试、集成测试和端到端测试。5.3.0可能引入了新的测试工具和改进的测试API,以帮助开发者编写更健壮的测试。 7. **...

    无涯教程网-Spring-Boot电子教程.pdf

    开发者可以使用spring-boot-starter-test起始器依赖项来包含常用的测试库,如JUnit、Hamcrest和Mockito等。 总结来说,Spring Boot通过自动配置、起始器依赖项、内嵌服务器和监控管理等功能,大大简化了基于Spring...

    Sharding-JDBC教程:Spring Boot整合Sharding-JDBC实现读写分离.docx

    ### Sharding-JDBC 教程:Spring Boot 整合 Sharding-JDBC 实现读写分离 #### 一、Sharding-JDBC 和 Spring Boot 的简介 **Sharding-JDBC** 是阿里巴巴开源的一个轻量级 Java 框架,主要用于对数据库进行分片、...

    spring-framework-reference

    - **文档和教程**:文档的改进和新教程的增加代表了Spring社区对知识分享的重视,有助于开发者学习和使用Spring。 - **Spring与Java EE标准的整合**:Spring支持了Java EE 6的特性,体现了Spring与Java EE标准之间...

    spring-framework-5.0.8.RELEASE-dist

    此外,Spring 社区还提供了大量的教程、文档和示例,帮助开发者更好地理解和使用这个强大的框架。无论是初学者还是经验丰富的开发者,Spring Framework 都能提供一套完整的解决方案,助力构建高质量的企业级应用。

    spring-framework-2.0.7-with-dependencies\spring-framework-2.0.7\spring-framework-2.0.7案例

    在"spring-framework-2.0.7案例"中,可能包含了一些演示如何使用Spring 2.0.7进行开发的实际项目或教程。这些示例可能涵盖了以下主题: 1. **IoC容器的使用**:展示了如何创建Bean定义,以及如何通过XML或注解方式...

    spring-boot-reference-guide-zh.pdf

    Spring Boot提供了测试工具和注解,如`@SpringBootTest`、`@WebMvcTest`等,方便进行单元测试和集成测试。 10. **Spring Data**: Spring Boot与Spring Data的整合,简化了数据访问,包括JPA、MongoDB、Couchbase...

    spring-boot中文开发指南

    《Spring Boot中文开发指南》是一本专为中文开发者编写的实战型教程,旨在帮助读者深入理解和熟练运用Spring Boot这一强大的Java开发框架。Spring Boot简化了Spring应用的初始搭建以及开发过程,通过“约定优于配置...

    Spring5.0下载官网下载包

    6. **社区支持**:Spring拥有庞大的开发者社区,提供了丰富的教程、示例代码和插件,使得学习和使用Spring变得更加容易。 总的来说,"Spring5.0下载官网下载包"为开发者提供了构建高效、灵活和可扩展的Java应用所需...

    spring-batch-test

    实际上,这只是Spring Batch文档的教程实现,但我想在此基础上进行扩展以作为演讲的基础。 通过Spring Boot实现。 指示 要生成可执行jar,只需使用maven执行程序包目标即可: mvn clean package 要运行批处理的...

Global site tag (gtag.js) - Google Analytics