java - PowerMock: métodos de código auxiliar de la clase padre
override super (3)
El elenco que estás intentando no va a funcionar como esperas. Sin embargo, creo que tienes un par de opciones para solucionar esto, ciertamente con PowerMockito.
Echa un vistazo a esta respuesta StackOverflow .
Estoy usando PowerMock y me gustaría saber cómo mantener todo el comportamiento de la clase infantil, pero apago super
llamadas que pueden ser anuladas por el niño.
Digamos que tengo esta clase:
public class A {
public String someMethod() {
return "I don''t want to see this value";
}
}
y una subclase:
public class B extends A {
@Override
public String someMethod() {
return super.someMethod() + ", but I want to see this one";
}
}
¿Cómo super.someMethod()
la llamada a super.someMethod()
?
He intentado
@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());
}
No olvide agregar @PrepareForTest({ParentClassToSupress.class})
en su clase de prueba. Luego puede hacer lo que Steve sugiere y suprimir los métodos en el padre: PowerMockito.suppress(methodsDeclaredIn(ParentClassToSupress.class));
Puedes intentar suprimir los métodos de la clase Parent,
PowerMockito.suppress(methodsDeclaredIn(A.class));
Aquí hay un artículo sobre Stubbing, supresión y reemplazo con PowerMock que podría ser de alguna utilidad.
https://www.jayway.com/2013/03/05/beyond-mocking-with-powermock/