سؤال

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