如何测试请求是否增加了指标,同时在Vert.x中未得到任何响应?

时间:2019-04-09 06:35:34

标签: 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);
            });

1 个答案:

答案 0 :(得分:2)

不确定为什么不调用您的句柄(也许是由于缺少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();
}