Asynchronous 如何模拟这个方法upsertQuery(MERGE_QUERY,getQueryParams(inputMsg)),它在Junit中返回future对象

Asynchronous 如何模拟这个方法upsertQuery(MERGE_QUERY,getQueryParams(inputMsg)),它在Junit中返回future对象,asynchronous,junit,mocking,vert.x,Asynchronous,Junit,Mocking,Vert.x,您可以模拟未来的任务,然后验证是否调用了该方法: client .upsertQuery(MERGE_QUERY, getQueryParams(inputMsg)) .onSuccess(res -> { future.complete(StatusCode.SUCCESS); }) .onFailure(res -> { if (!getDecider(res.getMessage())) { future.complete(Statu

您可以模拟未来的任务,然后验证是否调用了该方法:

client
  .upsertQuery(MERGE_QUERY, getQueryParams(inputMsg))
  .onSuccess(res -> {
    future.complete(StatusCode.SUCCESS);
  })
  .onFailure(res -> {
    if (!getDecider(res.getMessage())) {
      future.complete(StatusCode.BAD_DATA);
    } else {
      future.complete(StatusCode.RETRY);
    }
  });

return future;
你可以看看这个例子

Mockito.verify(future, times(1)).complete(StatusCode.SUCCESS);
Mockito.verify(future, times(0)).complete(StatusCode.BAD_DATA);
Mockito.verify(future, times(0)).complete(StatusCode.RETRY);