我想在调用方法时模拟调用on ScheduledExecutorService
来返回ScheduledFuture
类的mock schedule
.以下代码编译并正常工作:
ScheduledExecutorService executor = Mockito.mock(ScheduledExecutorService.class); ScheduledFuture future = Mockito.mock(ScheduledFuture.class); Mockito.when(executor.schedule( Mockito.any(Runnable.class), Mockito.anyLong(), Mockito.any(TimeUnit.class)) ).thenReturn(future); // <-- warning here
除了我在最后一行得到未经检查的警告:
found raw type: java.util.concurrent.ScheduledFuture missing type arguments for generic class java.util.concurrent.ScheduledFutureunchecked method invocation: method thenReturn in interface org.mockito.stubbing.OngoingStubbing is applied to given types required: T found: java.util.concurrent.ScheduledFuture unchecked conversion required: T found: java.util.concurrent.ScheduledFuture
是否有可能以某种方式避免这些警告?
代码就像ScheduledFuture> future = Mockito.mock(ScheduledFuture.class);
不编译.
当使用替代的模拟规范方法时,所有警告都会消失:
ScheduledFuture> future = Mockito.mock(ScheduledFuture.class); Mockito.doReturn(future).when(executor).schedule( Mockito.any(Runnable.class), Mockito.anyLong(), Mockito.any(TimeUnit.class) );