提问者:小点点

Mockito与删除方法发出实体实体对象在Spring的网络流量


我试图使用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);

共1个答案

匿名用户

在我看来,您需要“告诉”您的mock返回提供给delete()的对象,如下所示:

Mockito.when(repo.delete(any())).then(returnsFirstArg());