ssh框架下  由于bean实列 都交给spring 管理,要做单元测试就比较苦难,junit4 引入注解方便很多;

1. 加入依赖包

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

  • JUnit 4 (官方下载:http://www.junit.org/
  • Spring Test (Spring框架中的test包)
  • Spring 相关其他依赖包(不再赘述了,就是context等包)

2. 创建测试源目录和包

  在此,推荐创建一个和src平级的源文件目录,因为src内的类都是为日后产品准备的,而此处的类仅仅用于测试。而包的名称可以和src中的目录同名,这样由于在test源目录(source file),所以不会有冲突,而且名称又一模一样,更方便检索。

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:/config/applicationContext-*.xml","classpath:/config/applicationContext-beans-*.xml","classpath:/config/applicationContext-beans.xml"})

5. 创建测试方法

  创建测试用方法,推荐名称为 “被测方法名称+ Test”。

  测试方法上方加入 @Test

6. 通过JUnit 4 执行

  右键方法名,选择则“Run As”→“JUnit Test”即可

 package com.zjpost.bank.service;
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; @RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath:/config/applicationContext-*.xml","classpath:/config/applicationContext-beans-*.xml","classpath:/config/applicationContext-beans.xml"})
public class MBankDetailIcbcServiceImplTest extends
AbstractJUnit4SpringContextTests { @Resource private MBankDetailIcbcServiceImpl mBankDetailIcbcService; @Test public void getBankData(){ mBankDetailIcbcService.getBankData(); }
} @Resource 可以指定name 或者tpye

原文:http://blog.csdn.net/chinadeng/article/details/16860511

最新文章

  1. 2016 ICPC大连站---F题 Detachment
  2. C#------各种常见错误解决方法
  3. C++堆栈生长方向
  4. #梦断代码#first blood
  5. BZOJ 3083: 遥远的国度 dfs序,树链剖分,倍增
  6. C 语言循环之break、continue
  7. git分享:Git_DataPro
  8. Revenge of Fibonacc
  9. 【Unity 3D】学习笔记四十一:关节
  10. ERP小型集团化——运行集团配置向导
  11. 9.11 test
  12. angularJs模块ui-router之状态嵌套和视图嵌套
  13. 19 主线程向子线程发送信息(handler)
  14. Solr7.1--- 单机Linux环境搭建
  15. HTTP Status 404(The requested resource is not available)的几种解决方案
  16. 50个常用的Linux命令(三)awk
  17. ROS actionlib学习(三)
  18. js 动画效果实现
  19. ReactiveX 学习笔记(19)使用 RxSwift + RxCocoa 进行 GUI 编程
  20. Postgresql数据库实用命令

热门文章

  1. Python简单练习
  2. mysql在linux下的安装
  3. Linux下磁盘挂载
  4. POJ2484 A Funny Game[博弈论]
  5. POJ2001Shortest Prefixes[Trie]
  6. MySQL的基本知识 -- 函数
  7. 关于ES6新增的东西(二)
  8. 关于SQL SERVER数据库学习总结
  9. ajax实现下拉菜单无刷新加载更多
  10. C++学习笔记(1)