Как издеваться над конструктором базового класса - PullRequest
0 голосов
/ 30 января 2020

Я пытаюсь вызвать вызов конструктора базового класса в производном классе при создании шпиона производного класса.

private class Base{
        public Base(){
            System.out.println("Base class mock invocation");
        }

        public Base(String args){
            System.out.println("Base class spy invocation");
        }
    }

    private class Derived extends Base{


    public Derived(String args){
            super("");
        }
    }

    @Test
    public void testBaseClass() throws Exception {

        Base base = new Base();
        PowerMockito.whenNew(Base.class).withAnyArguments().thenReturn(base);
        Derived derived= Mockito.spy(new Derived("test"));

    }

Вызов шпиона в производном классе игнорирует макет конструктора базового класса. Вывод:

Макетный вызов базового класса Вызов шпиона базового класса

Можно ли принудительно заставить конструктор, используемый для базового класса шпиона?

...