1. 程式人生 > >junit 測試私有方法或私有變數

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);