Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unit testing 带有Mockito的单元测试Vertx AsyncHandler_Unit Testing_Junit_Mockito_Vert.x - Fatal编程技术网

Unit testing 带有Mockito的单元测试Vertx AsyncHandler

Unit testing 带有Mockito的单元测试Vertx AsyncHandler,unit-testing,junit,mockito,vert.x,Unit Testing,Junit,Mockito,Vert.x,我正在尝试对我的方法进行单元测试,该方法在内部调用我试图模拟的DB,并希望返回响应,但得到一个错误 public void processAlert(JsonObject requestInput, Handler<AsyncResult<JsonObject>> handler) { JsonObject jobInput = new JsonObject().put("requestInput", requestInput); dbS

我正在尝试对我的方法进行单元测试,该方法在内部调用我试图模拟的DB,并希望返回响应,但得到一个错误

 public void processAlert(JsonObject requestInput, Handler<AsyncResult<JsonObject>> handler) {
        JsonObject jobInput = new JsonObject().put("requestInput", requestInput);
        dbService.saveJobDetails(jobInput, readyHandler -> {
            if (readyHandler.succeeded()) {
                handler.handle(Future.succeededFuture(readyHandler.result()));
            } else {
                handler.handle(Future.failedFuture(readyHandler.cause()));
            }
        });
    }
public void processAlert(JsonObject requestInput,Handler){
JsonObject jobInput=新建JsonObject().put(“requestInput”,requestInput);
dbService.saveJobDetails(jobInput,readyHandler->{
if(readyHandler.successed()){
handler.handle(Future.succeededFuture(readyHandler.result());
}否则{
handler.handle(Future.failedFuture(readyHandler.cause());
}
});
}
模拟dbService的测试代码

    @Mock
    DBService dbService;

    @Captor
    private ArgumentCaptor<Handler<AsyncResult<JsonObject>>> resultHandlerCaptor;

    @Test
    public void test() {

        AsyncResult<JsonObject> result = Future.succeededFuture(new JsonObject().put("status", "success"));

        Mockito.verify(dbService).saveJobDetails(Mockito.any(JsonObject.class), resultHandlerCaptor.capture());
        Handler<AsyncResult<JsonObject>> handler = resultHandlerCaptor.getValue();
        handler.handle(result);
@Mock
DBService-DBService;
@俘虏
私有参数捕获器结果捕获器;
@试验
公开无效测试(){
AsyncResult=Future.succeededFuture(新的JsonObject().put(“状态”,“成功”));
verify(dbService).saveJobDetails(Mockito.any(JsonObject.class),resultHandlerCaptor.capture());
Handler=resultHandlerCaptor.getValue();
handler.handle(结果);
但是当我运行这个测试时,得到一个异常

Wanted but not invoked:
dbService.saveJobDetails(
    <any io.vertx.core.json.JsonObject>,
    <Capturing argument>
);
    Actually, there were zero interactions with this mock.
需要但未调用:
dbService.saveJobDetails(
,
);
实际上,与这个模拟没有任何交互。

测试中调用的
processAlert
方法在哪里?@tsegismont,我在handler.handler之后调用它,但在调用processAlert之前失败