Search code examples
javamockingjmockit

JMockit: How to mock protected methods?


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.


Solution

  • 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