如何在vert.xJava中对处理程序进行单元测试?

如何在vert.xJava中对处理程序进行单元测试?,java,unit-testing,mockito,vert.x,Java,Unit Testing,Mockito,Vert.x,我有一个使用io.vertx.ext.web.client.WebClient调用外部端点的方法。我无法测试它的处理程序方法。 这是需要测试的方法: public void freshdeskPostRequest(CompletableFuture<ResponseObject> completableFuture, String url, JsonObject jsonObject, String action) { webClient.postAbs(url)

我有一个使用io.vertx.ext.web.client.WebClient调用外部端点的方法。我无法测试它的处理程序方法。 这是需要测试的方法:

public void freshdeskPostRequest(CompletableFuture<ResponseObject> completableFuture, String url, JsonObject jsonObject, String action) {
        webClient.postAbs(url)
                .putHeader("Content-type", "application/json")
                .putHeader(Constants.AUTHORIZATION, freshdeskAuthHandler)
                .timeout(fresdeskTimeout)
                .sendJsonObject(jsonObject, httpResponseAsyncResult -> {
                    getFreshdeskResponse(completableFuture, action, httpResponseAsyncResult);
                });
    }
需要通过对url进行模拟调用来测试getFreshdeskResponse中的方法。但是该方法是在处理程序中调用的,所以我不确定如何模拟调用并执行处理程序。我在论坛上查看了几个答案,也浏览了一些文档,但没有一个有用。请帮忙。我使用Junit、Mockito作为测试框架。请提供帮助。

您可以使用mockito库的ArgumentCaptor捕获lambda表达式并手动触发lambda。例:

@Captor
ArgumentCaptor<SomeHandlerType> captor;  // create ArgumentCaptor for handler
您可以使用mockito库的ArgumentCaptor捕获lambda表达式并手动触发lambda。例:

@Captor
ArgumentCaptor<SomeHandlerType> captor;  // create ArgumentCaptor for handler

你不想进行集成测试还是单元测试?@moradi这是单元测试。我在问题中已经提到。我需要模拟一下这个调用,你不想进行集成测试还是单元测试?@moradi,这是单元测试。我在问题中已经提到。我要嘲笑那个电话