PowerMocking estático não retorna o objeto esperado

Eu tenho um problema zombandoCalendar.getInstance(). Como você agora, este método retorna um calendário - o objeto que estou zombando.

Agora meu código se parece com isso:

@RunWith(PowerMockRunner.class)
@PrepareForTest(Calendar.class)
public class SurveillanceDatabaseTest {
    @Test
    public void testFailingDatabase() throws Exception {
        mockStatic(Calendar.class);
        Calendar calendar = new GregorianCalendar();
        calendar.add(Calendar.HOUR, 1);
        when(Calendar.getInstance()).thenReturn(calendar);
        final Surveillance surveillance = new Surveillance();
        surveillance.checkDatabase();
   }
}

Calendar.getInstance() é chamado várias vezes emsurveillance.checkDatabase() e toda vez que é um objeto novo e não a simulação esperada do Calendário.

Alguém pode ver o que estou fazendo errado?

questionAnswers(3)

yourAnswerToTheQuestion