gpt4 book ai didi

java - 使用 Mockito 时避免未经检查的警告

转载 作者:搜寻专家 更新时间:2023-10-31 19:44:47 25 4
gpt4 key购买 nike

我想在 ScheduledExecutorService 上模拟一个电话返回 ScheduledFuture 的模拟类时方法 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.ScheduledFuture<V>

unchecked 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)
);

关于java - 使用 Mockito 时避免未经检查的警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34475010/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com