浅谈Spring测试框架+junit4单元测试原理
Spring的主要测试框架核心:
3个接口
1TestContext:负责持有一个当前测试的上下文
2TestContextManger:
(1)每次启动都会创建,管理一个TestContext
(2)在测试中更新TestContext的状态并代理到TestExecutionListener
3TestExcutionListener:监控实际的执行(如依赖注入,管理实务等)
实现:
1加入Junit4的注解@RunWith(SpringJUnit4ClassRunner.class),这里指定Spring的运行器来集成,创建TestContextManger
2加入@ContextConfiguration注解,指定要加载的配置文件的位置(类似于启动程序,Sring容器实例化bean的过程)
最好的实现方式:
1写一个基类
(1)指定加载的spring配置文件(加入Configlaction注解)
(2)创建TestContextManager实例(加入@Runwith注解)
2测试类继承这个基类
源码分析:
1首先配置@Runwith注解,会调用SpringJUnit4ClassRunner类中的createTestContextManger返回创建一个TestContextManger实例,然后创建一个TestContext实例, 在TestContext类中读取配置文件注解,获取这个配置文件中的所有的类,然后进行类加载。
2然后有了各个组件实例之后,就进行依赖注入
浅谈Spring测试框架+junit4单元测试原理相关推荐
- java+caching+system_浅谈Spring boot cache使用和原理
缓存要解决的问题:一个程序的瓶颈在于数据库,我们也知道内存的速度是大大快于硬盘的速度的.当我们需要重复地获取相同的数据的时候,我们一次又一次的请求数据库或者远程服务,导致大量的时间耗费在数据库查询或者 ...
- 浅谈:Spring Boot原理分析,切换内置web服务器,SpringBoot监听项目(使用springboot-admin),将springboot的项目打成war包
浅谈:Spring Boot原理分析(更多细节解释在代码注释中) 通过@EnableAutoConfiguration注解加载Springboot内置的自动初始化类(加载什么类是配置在spring.f ...
- 浅谈Spring定时任务
浅谈Spring定时任务 三种定时任务基于原理 多定时任务并发配置 动态定时任务 定时任务Demo 三种定时任务基于原理 SpringBoot配置定时任务主要有Spring Schedule.JDK自 ...
- 浅谈WEBGIS运用栅格地图实现原理[更新:Google Maps带来的新型WebGIS设计模式]
为什么要取这样的一个题目呢?主要是因为今天去了一家公司和他们谈了谈,本来是指望做兼职的,谈到最后当然是不成了.去谈的是地图制作(可兼职)一职,要求是地图制图经验,最后加了个有WEBGIS开发经验.本来 ...
- 浅谈Spring IOC的理解
浅谈Spring IOC的理解 学习过Spring框架的人一定都会听过Spring的IoC(控制反转) .DI(依赖注入)这两个概念,对于初学Spring的人来说,总觉得IoC .DI这两个概念是模糊 ...
- 浅谈 Spring IOC和AOP
浅谈 Spring IOC和AOP IOC 控制反转 以前创建对象的主动权和时机是由于自己把握的,现在将这种权利转移到Spring容器中,并且根据配置文件去创建对象管理对象 ioc的注入方式有三种:构 ...
- 浅谈javaweb三大框架和MVC设计模式
浅谈javaweb三大框架和MVC设计模式 转载自:http://blog.csdn.net/sunpeng19960715/article/details/50890705 小序:博主以前在学jav ...
- 由openSession、getCurrentSession和HibernateDaoSupport浅谈Spring对事物的支持
由openSession.getCurrentSession和HibernateDaoSupport浅谈Spring对事物的支持 Spring和Hibernate的集成的一个要点就是对事务的支持,op ...
- 跑三小时的monkey测试该怎么算_浅谈App测试(下)~带音频
文 | Vicky 采编|Emily 浅谈App测试(上)-带音频 一.功能测试 二.性能测试 (1)耗电量 影响因素:定位.传感器.蓝牙,其中CPU.持续定位是两个平台造成耗电的主要因素. (2) ...
最新文章
- LeetCode--160--相交链表
- 防火墙先锋 Check Point 进军汽车数据防护领域
- 无线服务器密码让别人改了,wifi密码被改了怎么办_wifi密码被别人改了怎么办?-192路由网...
- Java文本预处理 去除非法字符
- Android添加拍照功能,Android自定义相机,添加水印
- HDU 5281 Senior#39;s Gun 杀怪
- NVIDIA 显卡信息(CUDA信息的查看)
- [debug] PyCharm 退出 pytest in XXX.py,恢复run XXX.py
- Cache数据库之ECP搭建
- OpenGL学习之旅(三)——Bezier曲线理论与OpenGL实现
- 算法注册机编写扫盲之续篇---第二课
- 喉炎在临床上的症状表现
- 创投日报:3月28日收录投融资项目19起
- win10 安装虚拟机和乌班图
- 中国农业机械融资租赁市场预测与投资战略报告(2021版)
- STM32——浅谈睡眠模式、停机模式、待机模式
- ubuntu共享文件夹不显示及设备空间不足解决[随手笔记]
- android studio高德地图的显示于定位(附带逆地理编码围栏)
- win10 mysql 卸载不干净,安装提示,已经存在
- 什么是坐标系,不同坐标系之间有什么区别