PowerMock:WhiteBox.getMethod():获取没有参数的私有方法

时间:2014-07-28 12:14:01

标签: java unit-testing mockito powermock

我需要在单元测试中访问一个没有参数的私有方法。似乎getMethod()的两个实现需要参数类型作为最后一个参数。

有没有可以解决这个问题?

我试过了:

WhiteBox.getMethod(myClass,"method",null); 

3 个答案:

答案 0 :(得分:0)

在java.lang.Class中,getMethod方法是

Method getMethod(String name, Class<?>... parameterTypes)

这意味着您可以致电

clazz.getMethod( "method" );

对于没有参数的方法。因此可以调用您的Whitebox方法

Whitebox.getMethod(myClass,"method");

答案 1 :(得分:0)

此测试通过powermock-reflect-1.5.5

类:

public class Util {
    private void method() {}
    private static void staticMethod() {}
}

试验:

import static org.junit.Assert.assertNotNull;

import java.lang.reflect.Method;

import org.junit.Test;
import org.powermock.reflect.Whitebox;

public class UtilTest {
    @Test
    public void testMethod() {
        Method method = Whitebox.getMethod(Util.class, "method");
        assertNotNull(method);
    }

    @Test
    public void testStaticMethod() {
        Method method = Whitebox.getMethod(Util.class, "staticMethod");
        assertNotNull(method);
    }
}

答案 2 :(得分:-1)

WhiteBox.getMethod(MyClass.class,"method",null);