转自:https://www.cnblogs.com/brolanda/p/4299699.html

spring-test使用介绍

一、首先引入spring的jar文件到项目中,我采用maven管理项目依赖的jar包:

<properties><spring.version>4.0.0.RELEASE</spring.version>
</properties>
<dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>${spring.version}</version>
</dependency>    

项目目录结构如下:

还需要在项目中引入junit4的jar包

二、编写测试类

  上图结构中的JDBCTransactionTest.java为测试类其部分代码如下:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:applicationContext_jdbc_transaction.xml")
public class JDBCTransactionTest extends AbstractJUnit4SpringContextTests {@Testpublic void transactionTest() throws ClassNotFoundException,InstantiationException, IllegalAccessException, SQLException {Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();String url = "jdbc:oracle:thin:@localhost:1521:xxxxxxxx";String user = "xxxxxxx";String password = "xxxx";Connection conn = null;Statement statement = null;try {conn = DriverManager.getConnection(url, user, password);conn.setAutoCommit(false);statement = conn.createStatement();String sql = "insert into user_base values(1,'james','aaa',2,12)";statement.executeUpdate(sql);conn.commit();} catch (SQLException e) {if (conn != null)conn.rollback();conn.close();statement.close();}}
}

  要求:该类必须继承自AbstractJUnit4springcontextTests

     然后在其中编写方法,并在方法上加注释:@Test

在类的上部添加注释:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:applicationContext.xml")

这样便可以通过配置spring配置文件的位置进行测试开发了。

三、测试类中获取IOC容器

  在AbstractJUnit4springcontextTests 中有定义applicationContext变量,就是spring的全局IOC容器,通过它可以获取在xml中定义的bean

  为了通过名字方便获取自定义的bean,我们可以将该applicationContext封装到方法内,通过给定的bean的名称向外部提供自定义的bean,也可以提供给外部applicationContext:

public Object getBean(String beanName) {return applicationContext.getBean(beanName);
}protected ApplicationContext getContext() {return applicationContext;
}

springboot中的spring-test的作用相关推荐

  1. 在SpringBoot中使用Spring Session解决分布式会话共享问题

    在SpringBoot中使用Spring Session解决分布式会话共享问题 问题描述: 每次当重启服务器时,都会导致会员平台中已登录的用户掉线.这是因为每个用户的会话信息及状态都是由session ...

  2. 在共享dll中使用mfc_在SpringBoot中使用Spring Session解决分布式会话共享问题

    作者:简单的土豆 来源:www.jianshu.com/p/e4191997da56 前言 如果你正在使用Java开发Web应用,想必你对HttpSession非常熟悉,但我们知道HpptSessio ...

  3. SpringBoot中操作spring redis的工具类

    场景 SpringBoot+Vue+Redis实现前后端分离的字典缓存机制: https://blog.csdn.net/badao_liumang_qizhi/article/details/108 ...

  4. 如何在Springboot中查看Spring版本

    main方法或者Test方法就可以查看到对应的版本 @Testpublic void TestspringVersionAndspringBootVersion (){String springVer ...

  5. SpringBoot中集成Redis实现对redis中数据的解析和存储

    场景 SpringBoot中操作spring redis的工具类: SpringBoot中操作spring redis的工具类_霸道流氓气质的博客-CSDN博客 上面讲的操作redis的工具类,但是对 ...

  6. Spring中SmartLifecycle和Lifecycle的作用和区别

    欢迎关注方志朋的博客,回复"666"获面试宝典 本文基于SpringBoot 2.5.0-M2讲解Spring中Lifecycle和SmartLifecycle的作用和区别,以及如 ...

  7. SpringBoot中AOP实现落地——Filter(过滤器)、Intercepter(拦截器)、Aspect(Spring AOP)

    文章目录 一.一切要从Servlet说起 1.1什么是Servlet 1.2为什么需要Servlet 1.3Servlet如何响应用户请求 1.4Servlet与Tomcat处理请求的流程 1.5Se ...

  8. Springboot中手动new的对象无法注入交给Spring容器管理的原因及解决办法

    Springboot中Bean的注入 我们都知道,Springboot可以使用方法级别注解(@Bean)和类级别注解(@Controller.@Component.@Service等)加包扫描的方式注 ...

  9. 【SpringBoot】在普通类中获取spring容器中的bean

    这段时间公司搞封闭开发,做一个联通总部的客服系统项目,是基于springboot的.在开发工程中遇到一个页面datagrid数据排序的功能,因为有多个表的数据都要用到排序功能,于是我就写了一个排序功能 ...

  10. SpringBoot精通系列-Spring Boot中如何配置Https

    导语    Https作为一个比较安全的协议,现在已经越来越普及了,特别是在完成小程序或者是公众号开发的时候,https基本上都是刚需了.但是一个HTTPS的证书是比较费钱的事情,个人开发者可以通过云 ...

最新文章

  1. 【bzoj1853】[Scoi2010]幸运数字 容斥原理+搜索
  2. SAP MM 物料主数据分类视图的数据会带入批次分类视图里?
  3. python数字类型-Python3 - 数字类型
  4. Unity3D脚本中文系列教程(五)
  5. 描述java源程序构成_Java第二章Java程序设计
  6. 车辆姿态相关的传感器概述
  7. jq如何在打开新的页面 关闭之前同链接的页面_教你如何“抢”其他域名的权重...
  8. JDBC编程专题9之JDBC事务
  9. 网络蚂蚁背后的故事(转)
  10. 来了!Python 官方发布了整套的中文PDF 文档(共27本)
  11. 中国象棋matlab
  12. 解读SSD目标检测方法
  13. 产品经理必备原型工具Axure RP 8自定义元件库
  14. 三个月追求金牛全过程(图
  15. ps中怎么把人物的腿给p长
  16. 搭建超级实用的免费机器翻译api
  17. ODC预制光纤连接器
  18. 股票入门(一)基础知识
  19. 高级去雾算法与原理--暗原色图技术
  20. R语言的graphics画图功能

热门文章

  1. 微信应用签名配置方法
  2. Python的Code对象
  3. asuswrt 单臂路由_OPENWRT-KOOLSHARE软路由,一级/单臂/二级/旁软路由设置单臂路由联网教程...
  4. Android app界面设计工具AppInventor初体验
  5. 怎么避免从删库到跑路
  6. 关于深度学习(deep learning)
  7. 未来5年互联网,运营将成比产品更加有前途的职业?
  8. 曜石科技宣布获得千万级天使轮投资,全方面布局电竞产业链...
  9. iOS证书(p12)获取解密公私钥
  10. photoshop 快捷键学习笔记