首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PowerMock: WhiteBox.getMethod():获取不带参数的私有方法

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

Stack Overflow用户
提问于 2014-07-28 12:14:01
回答 3查看 6.1K关注 0票数 0

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

有别的办法绕过这件事吗?

我试过:

代码语言:javascript
复制
WhiteBox.getMethod(myClass,"method",null); 
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-07-28 12:34:21

这次考试通过了powermock-reflect-1.5.5考试。

类:

代码语言:javascript
复制
public class Util {
    private void method() {}
    private static void staticMethod() {}
}

测试:

代码语言:javascript
复制
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);
    }
}
票数 0
EN

Stack Overflow用户

发布于 2014-07-28 12:18:56

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

代码语言:javascript
复制
Method getMethod(String name, Class<?>... parameterTypes)

这意味着你可以打电话给

代码语言:javascript
复制
clazz.getMethod( "method" );

作为一种使用参数的方法。所以您的Whitebox方法可以被调用

代码语言:javascript
复制
Whitebox.getMethod(myClass,"method");
票数 0
EN

Stack Overflow用户

发布于 2014-07-28 12:40:09

代码语言:javascript
复制
WhiteBox.getMethod(MyClass.class,"method",null);
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24995033

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档