模拟返回列表未来的外部依赖项



我有一个具有外部依赖关系的类,它返回列表的未来。 如何嘲笑外部依赖?

public void meth() {
//some stuff
Future<List<String>> f1 = obj.methNew("anyString")
//some stuff
}
when(obj.methNew(anyString()).thenReturn("how to intialise some data here, like list of names")

您可以创建未来并使用thenReturn()返回它。在下面的例子中,我使用CompletableFuture创建了一个已经完成的Future<List<String>>

when(f1.methNew(anyString()))
.thenReturn(CompletableFuture.completedFuture(Arrays.asList("A", "B", "C")));

作为替代方式,你也可以嘲笑未来。这种方式的好处是能够定义任何行为。

例如,您希望测试任务被取消时的案例:

final Future<List<String>> mockedFuture = Mockito.mock(Future.class);
when(mockedFuture.isCancelled()).thenReturn(Boolean.TRUE);
when(mockedFuture.get()).thenReturn(asList("A", "B", "C"));
when(obj.methNew(anyString()).thenReturn(mockedFuture);

相关内容

  • 没有找到相关文章

最新更新