I want to mock an inherited protected method. I can\'t call this method directly from java code as it is inherited from class that in another package. I can\'t find a way to
Nutshell: Can't always use when
to stub spies; use doReturn
.
Assuming static imports of spy
and doReturn
(both PowerMockito
):
@RunWith(PowerMockRunner.class)
@PrepareForTest(B.class)
public class BTest {
@Test public void testClass() throws Exception {
B b = spy(new B());
doReturn(42).when(b, "m");
b.asd();
}
}
You could also @PrepareForTest(A.class)
and set up the doReturn
on when(a, "m")
. Which makes more sense depends on the actual test.