Pergunta

I'm trying to use JMockit in order to mock a protected method of a class:

public class A {

    protected String say() {
         return "hi";
    }
}

public class B extends A {

     public String cry() {
          return "waaaa " + say();
     }
}

I want to mock "say" method in my tests, so that every instance of B, when it invokes "say", it will get "bye" instead of "hi".

Thanks.

Foi útil?

Solução

You can simply make a MockUp of A:

new MockUp<A> () {
    @Mock protected String say() { return "bye"; }
};
System.out.println(new B().cry()); // prints waaaa bye
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top