jch*_*tel 18 java overriding stub super powermock
我正在使用PowerMock,我想知道如何保持子类的所有行为,但是存根super调用可能被子进程覆盖.
说我有这个班:
public class A {
public String someMethod() {
return "I don't want to see this value";
}
}
Run Code Online (Sandbox Code Playgroud)
和一个子类:
public class B extends A {
@Override
public String someMethod() {
return super.someMethod() + ", but I want to see this one";
}
}
Run Code Online (Sandbox Code Playgroud)
如何将呼叫存根到super.someMethod()?
我试过了
@Test
public void test() {
B spy = PowerMockito.spy(new B());
PowerMockito.doReturn("value").when((A)spy).someMethod();
assertEquals("value, but I want to see this one", spi.someMethod());
}
Run Code Online (Sandbox Code Playgroud)
您可以尝试抑制父类中的方法,
PowerMockito.suppress(methodsDeclaredIn(A.class));
Run Code Online (Sandbox Code Playgroud)
这是一篇关于 Stubbing、Suppressing 和 Replace with PowerMock 的文章,可能会有用。
https://www.jayway.com/2013/03/05/beyond-mocking-with-powermock/
| 归档时间: |
|
| 查看次数: |
12024 次 |
| 最近记录: |