Spring Test 整合 JUnit 4 使用总结
来源:互联网 发布:图片大小编辑软件 编辑:程序博客网 时间:2024/05/18 02:29
这两天做Web开发,发现通过Spring进行对象管理之后,做测试变得复杂了。因为所有的Bean都需要在applicationContext.xml中加载好,之后再通过@Resource去取得。如果每次都要整个业务流做的差不多了再去测试,这样效率很低,也很麻烦。如果单独去写一个测试用类,这样太繁琐了。于是想起Spring有一个测试框架,能够整合JUnit进行测试,于是便拿出来试试~
1. 加入依赖包
使用Spring的测试框架需要加入以下依赖包:
- JUnit 4 (官方下载:http://www.junit.org/)
- 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”即可
/* @(#) UserDaoTest.java * */package com.haha.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.haha.bean.User;@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("tom"); user1.setPassword("123456"); user1.setNickName("tom"); user1.setEmail("tom@gmail.com"); User user2 = new User(); user2.setUsername("admin"); user2.setPassword("123456"); user2.setNickName("admin"); user2.setEmail("admin@admin.com"); userDao.save(user1); userDao.save(user2); }}
- Spring Test 整合 JUnit 4 使用总结
- Spring Test 整合 JUnit 4 使用总结
- Spring Test 整合 JUnit 4 使用总结
- Spring Test 整合 JUnit 4 使用总结
- Spring Test 整合 JUnit 4 使用总结
- Spring Test 整合 JUnit 4 使用总结
- Spring Test 整合 JUnit 4 使用总结
- Spring Test 整合 JUnit 4 使用总结
- Spring Test 整合 JUnit 4 使用总结
- Spring Test 整合 JUnit 4 使用总结
- Spring Test 整合 JUnit 4 使用总结
- Spring Test 整合 JUnit 4 使用总结
- Spring Test 整合 JUnit 4 使用总结
- Spring Test 整合 JUnit 4 使用总结
- Spring Test 整合 JUnit 4 使用总结
- Spring Test 整合 JUnit 4 使用总结
- Spring Test 整合 JUnit 4 使用总结
- Spring Test 整合 JUnit 4 使用总结
- Git冲突:commit your changes or stash them before you can merge.
- iOS适配
- Unity3D深入浅出 - 天空盒(Skyboxes)
- Max Points on a Line(improve)
- Android 常用的系统调用
- Spring Test 整合 JUnit 4 使用总结
- android视频教程地址
- 数据结构3:检验线性表的基本操作和线性表的合并
- [LeetCode] Palindrome Partitioning II
- CPU和内存难亲近为哪般
- windows下面写的中文注释.在linux下面乱码.
- NOR Flash擦写和原理分析
- extjs学习07——extjs的初级UI设计4(Window实例改进)
- Java装饰模式,生成密码实例