我在一些测试中使用Mockito.
我有以下课程:
class BaseService {
public void save() {...}
}
public Childservice extends BaseService {
public void save(){
//some code
super.save();
}
}
Run Code Online (Sandbox Code Playgroud)
我想只模拟第二个调用(super.save)ChildService.第一个调用必须调用真正的方法.有没有办法做到这一点?
我正在使用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)