模拟计划ExecutorService.schedulewithfixeddelay(..)正在返回null



在我的单元测试中,我已经将ScheduledExecutoryService类模拟的实例注入了我要测试的类中,以便当调用scheduleAtFixedRate(...)方法时,它返回了模拟的Future。但是由于某种原因,它总是返回null。有什么想法吗?

应用程序代码:

Future<?> t = 
scheduledExecutorService.scheduleAtFixedRate(this, 10, 10, TimeUnit.SECONDS);

测试代码:

@Mock ScheduledExecutorService scheduledExecutorService;
@Mock ScheduledFuture<?> t;
Mockito.doReturn(t).when(scheduledExecutorService).scheduleWithFixedDelay(
any(Runnable.class), anyLong(), anyLong(), any(TimeUnit.class));

您正在传递整数(这可能是方法参数的定义(,尽管您期望的值很长。

更改为:

Mockito.doReturn(t).when(scheduledExecutorService).scheduleWithFixedDelay(
any(Runnable.class), anyInt(), anyInt(), any(TimeUnit.class));

您的应用程序代码正在使用scheduleAtFixedRate,但是您的测试代码只是模拟方法scheduleWithFixedDelay

相关内容

  • 没有找到相关文章

最新更新