单元测试中使用Spring的ReflectionTestUtils更方便
1 简介
ReflectionUtils
是Spring
中一个常用的类,属于spring-core
包;ReflectionTestUtils
则属于spring-test
包。两者功能有重叠的地方,而ReflectionUtils
会更强大。在单元测试时使用ReflectionTestUtils
,能增加我们的便利性。
假设我们需要创建一个类,但它的某些成员变量是私有的,并且没有提供公共的setter
方法,而我们无法按照它的正常初始化流程来使它的这些成员变量是我们想要的值。这时就需要想办法修改一个类的私有变量,而反射
可以帮助到我们。Spring
也提供了反射
相关的工具类:ReflectionUtils
和ReflectionTestUtils
,这里只介绍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
是一个小工具类,需要用到的时候,自然会感受到它的益处。
相关推荐
蛰脚踝的天蝎 2020-11-10
Cocolada 2020-11-12
TuxedoLinux 2020-09-11
snowphy 2020-08-19
83540690 2020-08-16
lustdevil 2020-08-03
83417807 2020-07-19
张文倩数据库学生 2020-07-19
bobljm 2020-07-07
83417807 2020-06-28
86427019 2020-06-28
86427019 2020-06-25
zhengzf0 2020-06-21
tobecrazy 2020-06-16
宿命java 2020-06-15
83417807 2020-06-15
84284855 2020-06-11