我的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);
});
答案 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();
}