java - 如何使用 Powermockito 模拟私有(private)方法?

标签 java unit-testing junit powermockito

我试图模拟我的私有(private)方法,但我得到了java.lang.IllegalArgumentException:对象不是声明类的实例。下面是我的方法

private String decodeResponse(byte bresp[])
    {

        String spresp = null;
        //
        return spresp;
    }

下面是我的测试类,

@PrepareForTest(MyClass.class)
    @RunWith(PowerMockRunner.class)
    public class MyClassTest{

    @Test
    public void test() throws Exception {
        PowerMockito.spy(MyClass.class);
        PowerMockito.doReturn("abcdefg").when(MyClass.class, "decodeResponse",Matchers.anyByte());
    }   
    }

我在这个问题上被困了 3 个小时。任何帮助都将非常感激。

最佳答案

    @PrepareForTest(MyClass.class)
    @RunWith(PowerMockRunner.class)
    public class MyClassTest{

    @Test
    public void test() throws Exception {
        MyClass myClassSpy = PowerMockito.spy(MyClass.class);
        PowerMockito.doReturn("abcdefg").when(myClassSpy, "decodeResponse",any(byte[].class));
    }   
    }

关于java - 如何使用 Powermockito 模拟私有(private)方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47337923/

相关文章:

java - 如何从类类型映射到列表?

java - 如何使用 BufferedImage 和 YCbCr 色彩空间?

Python SQLAlchemy - 模拟模型属性的 "desc"方法

c++ - 如何返回 gmock 中的输入参数之一

java - java 如何获取数组中元素的详细信息?

java - 无法从 Internet Explorer 动态 Web 表内的下拉列表中选择值

python - 为什么 cProfile 模块不适用于 unittest?

java - 除 RunTimeException 之外的代码覆盖率未覆盖

java - 使用 Gradle 运行单元测试时,最大堆大小在哪里设置?

java - 如何模拟仅在使用 JUnit/Mockito 测试重试时抛出一次异常?