单元测试中使用Spring的ReflectionTestUtils更方便

1 简介

ReflectionUtilsSpring 中一个常用的类,属于 spring-core 包; ReflectionTestUtils 则属于 spring-test 包。两者功能有重叠的地方,而 ReflectionUtils 会更强大。在单元测试时使用 ReflectionTestUtils ,能增加我们的便利性。

假设我们需要创建一个类,但它的某些成员变量是私有的,并且没有提供公共的 setter 方法,而我们无法按照它的正常初始化流程来使它的这些成员变量是我们想要的值。这时就需要想办法修改一个类的私有变量,而 反射 可以帮助到我们。 Spring 也提供了 反射 相关的工具类: ReflectionUtilsReflectionTestUtils ,这里只介绍 ReflectionTestUtils 的常用功能。

2 三类主要方法

获取对象的成员变量:

public static Object getField(@Nullable Object targetObject, String name)

给对象注入成员变量:

public static void setField(Class<?> targetClass, String name, @Nullable Object value)

调用成员方法:

public static <T> T invokeMethod(Object target, String name, Object... args)

3 总结

ReflectionTestUtils 是一个小工具类,需要用到的时候,自然会感受到它的益处。

欢迎访问 南瓜慢说 www.pkslow.com 获取更多精彩文章

欢迎关注微信公众号< 南瓜慢说 >,将持续为你更新…

单元测试中使用Spring的ReflectionTestUtils更方便

多读书,多分享;多写作,多整理。

原文 

https://www.pkslow.com/archives/reflectiontestutils

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » 单元测试中使用Spring的ReflectionTestUtils更方便

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址