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.

有帮助吗?

解决方案

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
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top