我试图使用mockito运行junit与Spring web流。这里删除方法返回Mono数据并使用thenBack发出实体对象,如下代码所示。这里的问题是当我试图模拟这个对象时,它只接受Mono并在下一行给出空指针。我得到了空指针,如实际代码所示。我如何在mockito中返回实体对象以删除存储库方法。实际代码
Mono<SuccessResponse> method1(RequestDto dto){
return repo.findById(dto.getId())
.flatMap(m -> {
Mono<ABC> ref= repo.delete(m).thenReturn(m);
return ref.flatMap(f -> {
if (f.getId() != 0) // Null pointer
return Mono.just(new SuccessResponse());
}
}
}
JUnit测试-我尝试了模拟,但没有一个有效。
//Mockito.when(repo.delete(CommonUtil.ABC())).thenReturn(Mono.empty());
//Mockito.doReturn(Mono.just(CommonUtil.ABC())).when(repo).delete(service.method1());
//Mockito.when(CommonUtil.ABC().getId()).thenReturn(7L);
在我看来,您需要“告诉”您的mock返回提供给delete()
的对象,如下所示:
Mockito.when(repo.delete(any())).then(returnsFirstArg());