Как проверить, увеличивают ли запросы показатели, но не получая никакого ответа в Vert.x? - PullRequest
1 голос
/ 09 апреля 2019

Работа моего сервера Vert.x, когда он получает некоторые недопустимые запросы, состоит в том, чтобы НЕ отправлять обратно любой resposne, а только увеличивать связанный показатель. Как я могу проверить это?

Следующий код не работает, потому что, поскольку мы никогда не получаем ответ, код обработчика никогда не выполняется - я просто опубликовал его, чтобы показать вам, что я хочу в моем тесте.

@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 Ответ

2 голосов
/ 09 апреля 2019

Не уверен, почему ваш дескриптор не вызывается (может быть, ваш тест падает из-за отсутствия 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();
}
...