如何使用 PowerMock 调用私有方法并获取 return 值?
How to use PowerMock invoke private method and get return value?
我使用 PowerMockito 模拟一个包含私有方法的 class 实例。我想验证私有方法 return 值是否正确,那么如何使用 PowerMock 调用私有方法并获取 return 值?
这是演示:
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");
我使用 PowerMockito 模拟一个包含私有方法的 class 实例。我想验证私有方法 return 值是否正确,那么如何使用 PowerMock 调用私有方法并获取 return 值? 这是演示:
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");