Java 为Vert.x异步方法编写测试用例
我想使用mockito为下面的方法编写Junit测试用例。 我根本无法涵盖异步调用,我试图模拟处理程序,但仍然无法工作 我正在模拟这个(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
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客户端。