zoukankan      html  css  js  c++  java
  • Jmockit 新版本的补充:利用反射设置全局变量、获取全局变量、执行私有方法测试

      在Jmockit的新版本中,测试数据准备的神器Deencapsulation已经被移除,那么就需要一些另外的方法来替代。

      1.设置全局变量:在Jmock的版本更新日志中,推荐用@Injectable与@Tested来替代Deencapsulation.setField,但是这个方法是不能用来设置静态属性的,这时需要用jdk中的Filed类的set来解决,

     TestA testA = new TestA();
        OneClass oneClass = new OneClass();
        Field testAField = oneClass.class.getDeclaredField("testA");
        testAField.setAccessible(true);
        testAField.set(oneClass, testA);

    2.获取全局变量:和上个例子差不多,例子

     TestA testA = new TestA();
        OneClass oneClass = new OneClass();
        Field testAField = oneClass.class.getDeclaredField("testA");
        testAField.setAccessible(true);
        testA =   testAField.get(oneClass, testA);

    3.测试私有方法:例子

    TestClass test= new TestClass();
    
     Method method = 
    //                                  "方法名"       参数1.class   参数2.class
    TestClass .class.getDeclaredMethod("testMethod",Object1.class,Object2.class);
     method.setAccessible(true);
    //                                               类实例 参数实例1 参数实例2
     ResultClass result  = (ResultClass)method.invoke(test,object1,object2);
  • 相关阅读:
    Cache Miss
    EmmyLua 注解标记总结
    关于浮点数计算时的精度问题 0.1+0.2不等于0.3
    Git-原理相关归纳-非入门
    读《非暴力沟通》
    Unity-图片压缩格式
    Git-大小写的坑
    将当前系统中的进程信息打印到文件中
    g++用法
    C++文本文件读写操作
  • 原文地址:https://www.cnblogs.com/funkboy/p/11340210.html
Copyright © 2011-2022 走看看