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

  • 相关阅读:
    background和background-size
    获取表单的初始值,模拟placeholder属性
    input[type=checkbox]
    background-size
    input的type属性的修改
    选项卡切换
    2016.12.13
    3. 如何封装查询条件与查询结果到map中
    Java 实现网站当前在线用户统计
    sell-- wordPOI
  • 原文地址:https://www.cnblogs.com/larrydpk/p/12853451.html
Copyright © 2011-2022 走看看