单测中如何mock用@Value注解注入的属性
实际项目开发中,我们经常会使用@Value注解从配置文件中注入属性值,写单侧时,在不启动容器的条件下,如何对这种属性进行mock呢?对这种情况,Spring提供了一个很好的工具类ReflectionTestUtils来实现。 注入属性:
@Value("${prepaid.partner.id}")
private String merchantPartnerId;
对这个属性,在单测中可以这样mock:
ReflectionTestUtils.setField(targetObject, "merchantPartnerId", "123");
顾名思义,该工具类就是利用反射机制来实现的,底层源码如图所示:
public static Field findField(Class<?> clazz, String name, Class<?> type) {Assert.notNull(clazz, "Class must not be null");Assert.isTrue(name != null || type != null, "Either name or type of the field must be specified");Class<?> searchType = clazz;while (Object.class != searchType && searchType != null) {Field[] fields = getDeclaredFields(searchType);for (Field field : fields) {if ((name == null || name.equals(field.getName())) &&(type == null || type.equals(field.getType()))) {return field;}}searchType = searchType.getSuperclass();}return null;
}
具体可参见:How do I mock an autowired @Value field in Spring with Mockito? - Stack Overflow
单测中如何mock用@Value注解注入的属性相关推荐
- 研效优化实践:Python单测——从入门到起飞
作者:uniquewang,腾讯安全平台后台开发工程师 福生于微,积微成著,一行代码的精心调试,一条指令的细心验证,一个字节的研磨优化,都是影响企业研发效能工程的细节因素.而单元测试,是指针对软件中的 ...
- 单测利器——PowerMockito使用心得
PowerMockito是什么? PowerMockito是一个帮助我们快速写单测的工具,如果待测试方法中调用了其他方法或远程接口(如RPC.数据库等等),但是我们又不想在单测执行过程中真正的调用,而 ...
- 可能是全网最好的 Spock 单测入门文章!
Spock 是非常简洁规范的单元测试框架,网上很多资料都不齐全,例子也很难懂.我自己经过一段时间的学习,梳理了这篇文章,不仅讲解层次递进,而且还有非常简洁明了的例子,小白都能懂! 快速入门 Spock ...
- Jest + React Testing Library 单测总结
大家好,我是若川.持续组织了6个月源码共读活动,感兴趣的可以点此加我微信 ruochuan02 参与,每周大家一起学习200行左右的源码,共同进步.同时极力推荐订阅我写的<学习源码整体架构系列& ...
- Spring依赖注入:注解注入总结
更多11 spring 依赖注入 注解 java 注解注入顾名思义就是通过注解来实现注入,Spring和注入相关的常见注解有Autowired.Resource.Qualifier.Service.C ...
- jacoco + junit + mock 单测没有统计覆盖率问题
使用junit :直接在pom文件中直接引入: <properties><project.build.sourceEncoding>UTF-8</project.buil ...
- 【spock】单测竟然可以如此丝滑
0. 为什么人人都讨厌写单测 在之前的关于swagger文章里提到过,程序员最讨厌的两件事,一件是别人不写文档,另一件就是自己写文档.这里如果把文档换成单元测试也同样成立. 每个开发人员都明白单元测试 ...
- Maven Eclipse Junit单元测试解 + 进阶使用Mockito做service层单测(万物皆可mo)+对于异步async方法的单测
一:简介 JUnit是一个JAVA语言的单元测试框架 主要是后端写完代码可以自己测试一下功能. 二:配置 2.1 引入 在 pom文件里引入依赖包 <dependency><grou ...
- Java 单测—static方法
单测-static方法 静态方法的单测 静态方法的单测 方法上加注解 @PrepareForTest({静态方法所在的类.class}) 调用测试方法前先要mock出类. @Before public ...
最新文章
- 深度|机器学习到底能替人干哪些工作?《科学》列出了8条评估标准
- JFET直耦级联放大电路:MPF102,2SK102
- 小程序文本溢出显示省略号(单行/多行)
- asp.net core json返回的时间格式出现T 如何解决
- WC2019 自闭记
- win10默认浏览器不显示谷歌浏览器_win10系统谷歌浏览器怎么用不了?谷歌浏览器打不开网页的解决方法...
- 编程的心法与注意事项
- Processing-基础小坑-
- Topcoder的使用方法
- python使用逐行读取,出现空行,清楚空行方法
- 简单易懂的综合网络布线
- 学个Antenna:手机天线入门
- 现场直击 | 复旦MBA科创青干营开营
- 【Python基础】from pygame.base import * # pylint: disable=wildcard-import; lgtm[py/polluting-import] Mod
- unity打包的安卓游戏在某些设备显示异常问题解决
- 生鲜电商的“7年之谎”
- SQLDBX找不到服务器 no server found
- matlab累加数组的前n行,有一组m行n列的数组,在matlab中如何编程,每三个数求一次平均数(行与列分别求)?...
- 如何进入BIOS设置界面
- 华为服务器做系统蓝屏,服务器安装2008r2后蓝屏