java - 如何测试请求是否增加指标而在 Vert.x 中没有得到任何响应?

标签 java rx-java2 vert.x junit5 micrometer

我的 Vert.x 服务器的工作是,当它收到一些无效请求时,不会发回任何响应,而只会增加相关的指标。我该如何测试它?

以下代码不起作用,因为我们永远不会收到响应,因此处理程序的代码永远不会被执行 - 我刚刚发布它是为了向您展示我在测试中想要的内容。

@Test
void invalidUrlTest(Vertx vertx, VertxTestContext testContext) {
    HttpRequest<String> request = WebClient
            .create(vertx, this.webClientOptions)
            .get(8080, "localhost", "/someinvalidaddress/")
            .as(BodyCodec.string());
    request.send(s -> {assertThat(meterRegistry.counter("invalid.request.counter")).isEqualTo(1.0);
            });

最佳答案

不确定为什么你的句柄没有被调用(也许你的测试由于缺少 ctx.async() 而陷入低谷?)但在任何情况下,你都可以尝试使用 httpClient 进行调用,并在做出断言时设置异常处理程序:

@Test
void invalidUrlTest(Vertx vertx, VertxTestContext ctx) {
    Async async = ctx.async();
    HttpClient client = vertx.createHttpClient();
    client.get(8080,"localhost","/someinvalidaddress/")
      .exceptionHandler(ex -> {
        assertThat(meterRegistry.counter("invalid.request.counter")).isEqualTo(1.0);
        async.complete();
      }).end();
}

关于java - 如何测试请求是否增加指标而在 Vert.x 中没有得到任何响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55586493/

相关文章:

java - 如何跳过并按逐行读取的字母字符串数组排序

java - hashmap 并从中检索数据

Android 存储库模式和 RxJava : Use Flowable or Single?

java - 接收Java 2 : How to wrap a callback?

android - 无法使用 TestSubscriber 订阅 RxJava 2 Observable

javascript - vertx应用程序中的CORS问题不起作用

java - 加载集成的 youtube channel 视频时出现 JSONException

java - ArrayList 在从谷歌数据存储区检索时抛出异常(使用 gwt、java)

java - 如何在 VertX 中完成分段上传后关闭连接

java - Vertx多线程worker verticle不并行处理消息