ScheduledExecutorService

ScheduledExecutorService

在单元测试中,我将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));

最佳答案

尽管您期望使用Long值,但您正在传递Integer(可能是方法参数的定义)。

改成:

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

10-07 16:09