我有一个问题嘲讽Calendar.getInstance()
。正如你现在这个方法返回一个日历 - 我嘲笑的对象。PowerMocking静态不返回预期对象
现在我的代码如下所示:
@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()
获取surveillance.checkDatabase()
叫不同的时间,每次它是一个新的对象,而不是日历的预期模拟。
任何人都可以看到我做错了什么?
In @PrepareForTest注释您必须将类使用静态模拟类,而不是静态模拟类。在你的情况应该是@PrepareForTest(Surveillance.class)而不是@PrepareForTest(Calendar.class)。 –
@DominikKunicki将其转换为答案,这是正确的,只是测试... – Betlista