成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

JUnit 3.8 通過反射測試私有方法

開發 后端
本文演示了JUnit測試私有的兩種方法,第一是通過把目標類的私有方法,第二是通過反射。詳細請看下文。

測試私有(private)的方法有兩種:

1)把目標類的私有方法(修飾符:private)修改為(public),不推薦,因為修改了源程序不佳

2)通過反射 (推薦)

 

代碼演示:

 

目標程序

PrivateMethod.java

  1. package com.junit3_8;  
  2.  
  3. public class PrivateMethod {  
  4.     //私有方法  
  5.     private int add(int a, int b)  
  6.     {         
  7.         return a +b ;  
  8.           
  9.     }  
  10.  
  11. }  

測試程序

PrivateMethodTest.java

  1. package com.junit3_8;  
  2.  
  3. import java.lang.reflect.Method;  
  4.  
  5. import junit.framework.Assert;  
  6. import junit.framework.TestCase;  
  7.  
  8. /**  
  9.  * 通過反射測試私有方法,  
  10.  *   
  11.  */ 
  12. public class PrivateMethodTest extends TestCase {  
  13.       
  14.     public void testAdd() throws Exception  
  15.     {  
  16.         //PrivateMethod pm = new PrivateMethod();  
  17.         //獲取目標類的class對象  
  18.         Class<PrivateMethod> class1 = PrivateMethod.class;  
  19.           
  20.         //獲取目標類的實例  
  21.         Object instance = class1.newInstance();  
  22.           
  23.         //getDeclaredMethod()  可獲取 公共、保護、默認(包)訪問和私有方法,但不包括繼承的方法。  
  24.         //getMethod() 只可獲取公共的方法  
  25.         Method method = class1.getDeclaredMethod("add"new Class[]{int.class,int.class});  
  26.           
  27.         //值為true時 反射的對象在使用時 應讓一切已有的訪問權限取消  
  28.         method.setAccessible(true);  
  29.           
  30.         Object result = method.invoke(instance, new Object[]{1,2});  
  31.           
  32.         Assert.assertEquals(3, result);  
  33.           
  34.       
  35.     }  
  36.  
  37. }  

小 結:

getDeclaredMethod() 可獲取 公共、保護、默認(包)訪問和私有方法,但不包括繼承的方法。

getMethod() 只可獲取公共的方法

  1. Method method = class1.getDeclaredMethod("add", new Class[]{int.class,int.class}); 

等價于

  1. Method method = class1.getDeclaredMethod("add"new Class[]{Integer.TYPE,int.Integer.TYPE}); 

因為 Integer.TYPE 表示基本類型 int 的 Class 實例。

原文連接:http://blog.csdn.net/hzc543806053/article/details/7340546

【編輯推薦】

  1. 探究Java初始化的過程
  2. 如何系統地學習JavaScript
  3. Java集合框架的知識總結
  4. Java與F#的并行程序處理對比
  5. Java并發編程之同步互斥問題
責任編輯:林師授 來源: hzc543806053的博客
相關推薦

2022-03-17 08:30:28

Python私有屬性私有方法

2023-09-16 19:38:17

Python私有屬性私有方法

2009-07-21 17:26:09

Scala本地函數

2011-08-16 10:35:59

Objective_C私有方法

2020-07-22 14:10:17

Chrome 84空閑檢測前端

2020-12-30 07:08:27

Java方法測試

2011-12-29 14:28:23

Java

2009-06-19 16:26:51

JUnit測試骨架

2011-03-30 16:54:13

JUnit

2013-01-07 13:54:17

Android開發JUnit單元測試

2024-03-07 09:37:45

C#表達式(樹)動態方法

2009-07-15 17:49:09

Jython開發

2012-02-07 09:08:50

Feed4JUnitJava

2011-08-11 13:02:43

Struts2Junit

2017-01-16 12:12:29

單元測試JUnit

2017-01-14 23:26:17

單元測試JUnit測試

2011-11-18 15:18:41

Junit單元測試Java

2025-02-13 08:58:02

Gogomonkey函數

2021-01-07 14:06:30

Spring BootJUnit5Java

2010-04-13 10:49:32

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产91亚洲精品一区二区三区 | 欧洲色| 97免费视频在线观看 | 国产日韩一区二区 | 久久精品国产亚洲a | 一级在线免费观看 | 综合激情网 | 日本福利一区 | 欧美中文一区 | 亚洲最大成人综合 | 午夜视频网站 | 欧美久久一区二区三区 | 亚洲欧美中文日韩在线v日本 | 能免费看的av | 久久一| 97视频在线观看免费 | 亚洲xx在线 | 91性高湖久久久久久久久_久久99 | 日韩精品一区二区三区在线观看 | 国产一级片在线播放 | 黄色永久免费 | 国产免国产免费 | 五月婷婷在线视频 | 国产成年人视频 | 日韩精品一区二区三区视频播放 | 欧美成人专区 | 天堂免费 | jlzzjlzz国产精品久久 | 欧美综合一区二区三区 | 免费av电影网站 | 日韩精品一区二区三区在线观看 | 一区二区三区四区视频 | 涩涩导航 | 在线国产一区二区 | 97久久精品午夜一区二区 | 午夜精品一区 | 国产精品成人一区二区三区 | 久久亚洲精品国产精品紫薇 | 国产成人精品一区二区三 | 毛片在线看片 | 国产精品高潮呻吟 |