I read several posts about using powermockito instead of just mockito to test static methods, however after switching to power mockito, I'm still getting the same error. Below is my class and the exception. Neither case in the exception explains the error I have.
@RunWith(PowerMockRunner.class)
@PrepareForTest({ClassToBeMocked.class})
public class Test extends AbstractTestNGSpringContextTests {
@Mock
Object1 o1;
@BeforeMethod
public void init() {
mockStatic(ClassToBeMocked.class);
PowerMockito.when(ClassToBeMocked.getMethod()).thenReturn("string");
}
The last line of code causes this exception org.mockito.exceptions.misusing.MissingMethodInvocationException: when() requires an argument which has to be 'a method call on a mock'. For example: when(mock.getArticles()).thenReturn(articles);
Also, this error might show up because: 1. you stub either of: final/private/equals()/hashCode() methods. Those methods cannot be stubbed/verified. Mocking methods declared on non-public parent classes is not supported. 2. inside when() you don't call method on mock but on some other object.