本文原创,欢迎转载。转载请在文章明显可见处张贴如下内容:(注意:请保留超链接格式)
这两天做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);
}
}
分享到:
相关推荐
"SpringTest_springtest_spring_java_Framework_"这个标题暗示了我们讨论的是关于Spring框架的测试方面,可能是使用Spring进行单元测试或集成测试的一些实践。 描述中的“简单小应用,实现了一些基本的功能”可能是...
Spring Test是Spring框架的一个重要组成部分,它为Java开发者提供了强大的测试支持,涵盖了单元测试、集成测试以及端到端测试的方方面面。Spring Test旨在简化应用程序的测试工作,通过与JUnit和其他测试框架结合,...
本教程将基于"Springtest"这个项目,深入浅出地探讨Spring框架的基础知识和应用。 一、Spring概述 Spring是一个开源的Java企业级应用程序框架,由Rod Johnson创建,主要目标是简化Java EE开发。它提供了全面的编程...
Spring Test是Spring框架的一部分,专为测试Spring应用而设计,它提供了丰富的功能,使得开发者能够更轻松、更高效地对Spring驱动的应用进行单元测试和集成测试。在本篇中,我们将深入探讨Spring Test的关键概念、...
Spring Test是Spring框架中的一个重要组成部分,它为Java开发者提供了强大的测试工具,用于验证Spring应用程序的配置和行为。在本文中,我们将深入探讨Spring Test的核心概念、功能以及如何使用它进行有效的单元测试...
当我们谈论“SpringTest cookie”时,这可能指的是使用Spring Test模块进行Cookie相关的单元测试和集成测试。 Spring Test是Spring框架的一部分,专门用于支持测试Spring驱动的应用程序。它提供了一组工具,允许...
SpringTest代码 package lib; //JavaBean public class HelloWorld { private String helloWorld; public String getHelloWorld() { return helloWorld; } public void setHelloWorld(String helloWorld) {...
【标题】"mybatis+spring+springtest" 涉及到的是在Java开发中集成MyBatis、Spring以及Spring Test框架的知识点。这个标题暗示了我们正在讨论如何在项目中整合这三个强大的工具来实现数据访问层(DAO)的自动化测试...
在这个项目中,“spring+redis作为缓存,带springTest配置”旨在展示如何在Spring应用中集成Redis作为缓存,并利用Spring Test进行测试。 首先,我们需要理解Spring框架。Spring是一个全面的企业级应用开发框架,它...
a java spring test in invertion of control a java spring test in invertion of control
在本篇中,我们将深入探讨Spring Test框架以及它在开发者测试中的应用,特别是与Redis集成的测试场景。Spring Test是Spring框架的一部分,为Spring应用程序提供了强大的单元测试和集成测试支持。我们将通过分析提供...
《Spring MVC 框架详解及实战指南》 在Java Web开发领域,Spring MVC框架以其强大的功能和灵活性,成为开发者们的首选。本指南将深入探讨Spring MVC的核心概念、配置以及实际应用,帮助新手快速上手。 一、Spring ...
SpringTest(3).zip是一个可能包含与Spring框架相关的测试材料的压缩文件。Spring是一个广泛使用的Java企业级应用开发框架,特别适用于构建可测试、模块化和松耦合的应用程序。这个压缩包可能包括了源代码、配置文件...
这是一个基于Java技术栈的Web应用示例项目,主要采用了Spring、SpringMVC、MyBatis、Log4j和SpringTest等组件。以下是这些技术及其在项目中的应用详解: 1. **Spring**:Spring是一个全面的Java企业级应用开发框架...
《Spring框架中的依赖注入实践——基于“springtest.rar”案例分析》 在Java开发领域,Spring框架因其强大的功能和灵活性而备受青睐。其中,依赖注入(Dependency Injection,简称DI)是Spring的核心特性之一,它极...