在单元测试中,需要测试类中的私有方法,这时候会利用到反射机制
标签:
Android SDK
[1].[代码] [Java]代码 跳至 [1]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
import
java.lang.reflect.InvocationTargetException;
import
java.lang.reflect.Method;
/**
* @author weiweishen
* 帮助测试私有方法的工具类
*/
public
class
PrivateMethodTestUtil {
/**
* 测试私有方法
* @param classInstance
* @param methodName
* @param paramTypes
* @param args
*/
public
static
Object invoke(Class<?> clz,String methodName,Class<?>[] paramTypes,Object[] args){
try
{
Method method = clz.getDeclaredMethod(methodName, paramTypes);
method.setAccessible(
true
);
try
{
return
method.invoke(clz, args);
}
catch
(IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
catch
(IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
catch
(InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
catch
(SecurityException e){
e.printStackTrace();
}
catch
(NoSuchMethodException e){
e.printStackTrace();
}
return
null
;
}
}
|