junit 测试私有方法或私有变量

Method method = targetClass.getDeclaredMethod("方法名", 方法参数类型);
method.setAccessible(true);
return method.invoke(类的实例, 方法参数值);
Field field = targetClass.getDeclaredField("私有变量名");
field.setAccessible(true);
field.set(类的实例, 私有变量值);
------------------------------------------------------------------------------------
实例
  class NumParser(){
  //私有变量
  private Query query_;
  public  NumParser(Query query){
     //构造函数
     query_ = query
   }
   private void fun(){
       //私有方法
   }
 }
    NumParser numParser = new NumParser(query)
    Method method = numParser.getClass().getDeclaredMethod("fun", null);
    method.setAccessible(true);
    method.invoke(numParser, null);
             
    Field field = numParser.getClass().getDeclaredField("query_");
    field.setAccessible(true);
    Object after = field.get(numParser);

猜你喜欢

转载自blog.csdn.net/weixin_37370093/article/details/73924499
今日推荐