使用返回 Optional<T> 的方法出现 Mockito 错误
我有一个使用以下方法的接口
public interface IRemoteStore {
<T> Optional<T> get(String cacheName, String key, String ... rest);
}
实现接口的类的实例称为 remoteStore。
当我用moctorito嘲笑这个,并在以下情况下使用该方法时:
Mockito.when(remoteStore.get("a", "b")).thenReturn("lol");
我收到错误:
无法解析该方法
thenReturn(java.lang.String)
我认为这与get返回Optant类的实例这一事实有关,所以我尝试了以下方法:
Mockito.<Optional<String>>when(remoteStore.get("cache-name", "cache-key")).thenReturn
(Optional.of("lol"));
但是,我得到这个错误:
当 Mockito 中的 () 不能应用于 ()。
Optional<String>
Optional<Object>
它唯一一次工作是这样的:
String returnCacheValueString = "lol";
Optional<Object> returnCacheValue = Optional.of((Object) returnCacheValueString);
Mockito.<Optional<Object>>when(remotestore.get("cache-name", "cache-key")).thenReturn(returnCacheValue);
但上面返回的实例,而不是 。Optional<Object>
Optional<String>
为什么我不能直接返回 一个实例?如果可以的话,我该怎么做呢?Optional<String>