• 单元测试中使用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是一个小工具类,需要用到的时候,自然会感受到它的益处。

  • 相关阅读:
    版本控制 version control
    URL URI
    能用上的收藏
    函数式语言简介(functional language)
    h5触摸事件-判断上下滑动
    地理定位
    web存储
    jquerymobile tap事件被触发两次
    关于button的onclientclick事件和onclick事件
    .net 后台给html控件赋值
  • 原文地址:https://www.cnblogs.com/larrydpk/p/12853451.html
Copyright © 2020-2023  润新知