无法模拟java 8的可选类

时间:2018-05-18 10:24:54

标签: java mockito powermock

我无法模拟Option类。

我的伪代码是:

PowerMockito.when(stream.findAny()).thenReturn("Mock Of Optional class");

但每次我运行此代码时 - 我都会收到Optional.empty

我正在使用1.5版本的PowerMock

2 个答案:

答案 0 :(得分:2)

你无法模拟mockito版本1中的最终类,而Optional是最终类。

public final class Optional<T> {

在mockito的第2版中,你可以这样做。

答案 1 :(得分:2)

无需模拟FutureOptional等原始类。只需将要返回的模拟数据包装在真实的Optional

MyData myData = Mockito.mock(MyData.class)
when(repository.getData()).thenReturn(Optional.of(myData));

嘲笑缺席:

when(repository.getData()).thenReturn(Optional.<MyData>empty());