Mockito asks to add @PrepareForTest for the class even after adding @PrepareForTest
<p>I have the following simple code. I have a class (TestClass) and I want to test "someMethod". There is an external static method which is called by my "someMethod". 
I want to Powermock that static method to return me some dummy object.
I have the @PrepareForTest(ExternalClass.class) in the begining, but when I execute it gives the error:</p>

<p><em>The class ExternalClass not prepared for test.
To prepare this class, add class to the <code>'@PrepareForTest'</code> annotation.
In case if you don't use this annotation, add the annotation on class or  method level.</em></p>

<p>Please help me to point out what is wrong with the way I have used <code>@PrepareForTest</code></p>

<pre><code>@RunWith(PowerMockRunner.class)
@PrepareForTest(ExternalClass.class)
public class xyzTest {  
    @Mock
    private RestTemplate restTemplate;

    @Mock
    private TestClass testClass;

    @BeforeClass
    private void setUpBeforeClass() {
        MockitoAnnotations.initMocks(this);
    }

    @Test
    public void testSuccessCase() {
        Boolean mockResponse = true;
        ResponseEntity&lt;Boolean&gt; response = new ResponseEntity&lt;Boolean&gt;(mockResponse, HttpStatus.OK);
        SomeClass someClass = new SomeClass("test", "1.0.0", "someUrl", "someMetaData");

        PowerMockito.mockStatic(ExternalClass.class);

        Mockito.when(restTemplate.postForEntity(any(String.class), any(String.class), eq(Boolean.class))).thenReturn(response);
        Mockito.when(ExternalClass.getSomeClass(any(String.class))).thenReturn(someClass);

        Boolean result = testClass.someMethod("test");

        Assert.isTrue(result);
        Mockito.verify(restTemplate, times(1)).postForObject(any(String.class), any(String.class), any());
    }
}
</code></pre>