如何使用PowerMock调用私有方法并获取返回值?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用PowerMock调用私有方法并获取返回值?相关的知识,希望对你有一定的参考价值。
我使用PowerMockito模拟包含私有方法的类实例。而我想验证私有方法返回值是否正确,那么如何使用PowerMock调用私有方法并获取返回值?这是演示:
class Demo {
public publicMethod1ReturnClass publicMethod1() {
// do something...
}
private privateMethod1ReturnClass privateMethod1() {
// do something
}
}
@RunWith(PowerMockRunner.class)
@PrepareForTest(Demo.class)
class DemoTest {
@Test
public void test() throws Exception {
Demo demo = PowerMockito.spy(new Demo());
privateMethod1ReturnClass result = demo.privateMethod1();
}
}
答案
你可以像这样使用Whitebox
来做,
privateMethod1ReturnClass s = Whitebox.invokeMethod(demo, "privateMethod1");
assertEquals(s, "yourExpectedResult");
以上是关于如何使用PowerMock调用私有方法并获取返回值?的主要内容,如果未能解决你的问题,请参考以下文章