junit 測試私有方法或私有變數
阿新 • • 發佈:2019-01-08
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);