mocking protected method

后端 未结 1 1855
无人共我
无人共我 2020-12-03 11:21

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

相关标签:
1条回答
  • 2020-12-03 11:27

    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.

    0 讨论(0)
提交回复
热议问题