Junit 模拟i.o vertx异步处理程序

Junit 模拟i.o vertx异步处理程序,junit,vert.x,Junit,Vert.x,如何模拟Vertx.io异步处理程序,将不同JsonObject的不同asyncResult作为mongoClient方法的参数返回 我已经尝试将passMockito.any()作为doAnswer() Mockito.when(asyncResult.result())。然后返回(result) Mockito.doAnswer(新答案() { @凌驾 公共异步结果应答(调用锁arg0)抛出可丢弃{ ((Handler)arg0.getArgument(3)).handle(asyncRes

如何模拟Vertx.io异步处理程序,将不同JsonObject的不同asyncResult作为mongoClient方法的参数返回

我已经尝试将pass
Mockito.any()
作为
doAnswer()

Mockito.when(asyncResult.result())。然后返回(result)

Mockito.doAnswer(新答案()
{
@凌驾
公共异步结果应答(调用锁arg0)抛出可丢弃{
((Handler)arg0.getArgument(3)).handle(asyncResult);
返回null;
}
}).when(mongo).findOne(Mockito.any(),Mockito.any(),Mockito.any(),Mockito.any());
对于两个不同的查询,我有两个不同的结果,因此对于一个结果,我如上所述进行了模拟,但对于另一个结果,我对不同的
JsonObject
给出了不同的结果。那么,如何在同一个函数中用不同的结果模拟相同的方法呢

 Mockito.doAnswer(new Answer<AsyncResult<JsonObject>>() 
 {
    @Override
    public AsyncResult<JsonObject> answer(InvocationOnMock arg0) throws Throwable {

    ((Handler<AsyncResult<JsonObject>>) arg0.getArgument(3)).handle(asyncResult);
    return null;
    }
  }).when(mongo).findOne(Mockito.any(), Mockito.any(), Mockito.any(), Mockito.any());