Unit testing 带有Mockito的单元测试Vertx AsyncHandler
我正在尝试对我的方法进行单元测试,该方法在内部调用我试图模拟的DB,并希望返回响应,但得到一个错误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
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之前失败