Java 为Vert.x异步方法编写测试用例

Java 为Vert.x异步方法编写测试用例,java,asynchronous,vert.x,Java,Asynchronous,Vert.x,我想使用mockito为下面的方法编写Junit测试用例。 我根本无法涵盖异步调用,我试图模拟处理程序,但仍然无法工作 我正在模拟这个(handler.successed()&&handler.result()!=null)来从这个条件检查中获得true,但是它没有被覆盖 @Override public Future<List<StationModel>> getAll(StationModel request) { HttpRequest&l

我想使用mockito为下面的方法编写Junit测试用例。 我根本无法涵盖异步调用,我试图模拟处理程序,但仍然无法工作

我正在模拟这个(
handler.successed()&&handler.result()!=null
)来从这个条件检查中获得true,但是它没有被覆盖

@Override
    public Future<List<StationModel>> getAll(StationModel request) {

        HttpRequest<Buffer> webClient = null;
        String stationID = request.getStationID();
        String type = request.getType();
        String days = request.getId();
        Future<List<StationModel>> result = Future.future();

        if (stationID != null && type != null && days != null) {
            webClient = vertxWebClient.getClient().get(port, host,
                    "/dataservice/data-record/" + stationID + "/" + type + "/" + days);

        } else if (stationID != null && days != null) {
            webClient = vertxWebClient.getClient().get(port, host,
                    "/dataservice/data-record/" + stationID + "/" + days);
        }
        if (webClient != null) {
            MultiMap headers = webClient.headers();
            headers.set("content-type", "application/json");
            headers.set("X-Service-Url", request.getHttpRequest().getHeader("X-Service-Url"));
            headers.set("X-Service-User", request.getHttpRequest().getHeader("X-Service-User"));
            String serviceTicket = request.getHttpRequest().getHeader("X-Service-Ticket");
            String accessToken = request.getHttpRequest().getHeader("X-Service-AccessToken");
            if (serviceTicket != null) {
                headers.set("X-Service-Ticket", serviceTicket);
            }

            if (accessToken != null) {
                headers.set("X-Service-AccessToken", accessToken);
            }

            webClient.send(handler -> {
                if (handler.succeeded() && handler.result() != null) {
                    JsonObject response = handler.result().bodyAsJsonObject();

                    JsonArray array = (JsonArray) response.getValue("data");
                    LOGGER.debug("Response array{}", array);
                    @SuppressWarnings({ "rawtypes", "unchecked" })
                    List<StationModel> list = (List) new ArrayList<BaseEntity>(
                            basicRepository.toModelList(new StationModel(), array));
                    LOGGER.debug("API Response List{}", list);
                    result.complete(list);

                } else {
                    LOGGER.error("API Error {}", handler.cause().getMessage());
                    result.fail(handler.cause());
                }

            });
        } else {
            LOGGER.debug("Invalid URL");
        }
        return result;
    }
@覆盖
公共未来getAll(站点模型请求){
HttpRequest webClient=null;
字符串stationID=request.getStationID();
字符串类型=request.getType();
String days=request.getId();
Future result=Future.Future();
if(stationID!=null&&type!=null&&days!=null){
webClient=vertxWebClient.getClient().get(端口、主机、,
“/dataservice/data record/”+stationID+“/”+type+“/”+days);
}else if(stationID!=null&&days!=null){
webClient=vertxWebClient.getClient().get(端口、主机、,
“/dataservice/data record/”+stationID+“/”+days);
}
如果(网络客户端!=null){
MultiMap headers=webClient.headers();
headers.set(“内容类型”、“应用程序/json”);
headers.set(“X-Service-Url”,request.getHttpRequest().getHeader(“X-Service-Url”);
headers.set(“X-Service-User”,request.getHttpRequest().getHeader(“X-Service-User”);
字符串serviceTicket=request.getHttpRequest().getHeader(“X-Service-Ticket”);
字符串accessToken=request.getHttpRequest().getHeader(“X-Service-accessToken”);
if(服务票证!=null){
headers.set(“X服务票”,服务票);
}
if(accessToken!=null){
headers.set(“X-Service-AccessToken”,AccessToken);
}
webClient.send(处理程序->{
if(handler.successed()&&handler.result()!=null){
JsonObject response=handler.result().bodyAsJsonObject();
JsonArray数组=(JsonArray)response.getValue(“数据”);
debug(“响应数组{}”,数组);
@SuppressWarnings({“rawtypes”,“unchecked”})
列表=(列表)新建ArrayList(
toModelList(新的StationModel(),数组));
调试(“API响应列表{}”,列表);
结果:完成(列表);
}否则{
LOGGER.error(“API错误{}”,handler.cause().getMessage());
result.fail(handler.cause());
}
});
}否则{
调试(“无效URL”);
}
返回结果;
}

HI,请提供您已经实现的示例测试。另一方面,如果要测试getAll()方法,应该模拟web客户端。