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

  • 相关阅读:
    tp框架实现ajax
    tp框架的增删改查
    tp框架获取常量信息、方法、命名空间
    tp框架,访问方式、空方法
    tp基础,文件存储路径
    缓存
    CMS系统存储路径
    Smarty模版引擎的原理
    php的empty(),trim(),strlen()方法
    PHP 流程管理
  • 原文地址:https://www.cnblogs.com/larrydpk/p/12853451.html
Copyright © 2011-2022 走看看