如何编写 Post、Get、Put、Delete 方法 Web 客户端单元测试 Vert.x 的端点
How to write Post, Get, Put, Delete method web client unit test for Vert.x for end-points
我想用 Junit 5 为端点编写一些单元测试,在 Vertx 3.8 的 Web 客户端中使用 post、get、put 和 delete 方法。但是我在编写这些测试时遇到了一些问题。我访问了这个 link 但我需要更多帮助来为这些端点编写单元测试。请与我分享每个请求的示例。
我有一个数据库连接,在每个注释之前的 init 方法中
已配置。
@BeforeEach:
DeploymentOptions options = new DeploymentOptions()
.setConfig(new JsonObject().put("http.port", port));
vertx.deployVerticle(new HttpVerticle(configuration, vertx, operations), options, context.completing());
感谢朋友们的提示。
编辑:
在这个 site 中,我在 vert.x 中找到了编写单元测试的一个很好的示例,然后在服务运行并在 [=34= 上工作之前开始编写我自己的端点测试].当我调用 get 端点时,一切正常。但是当我想尝试 Post 端点并使用英语字符测试通过时,但是当我尝试使用波斯语字符进行 Post 端点测试时,它不会通过并得到这个错误:io.vertx.core.json.DecodeException:无法 decode:Unrecognized 令牌 't':期待(JSON 字符串、数字、数组、对象或令牌 'null', 'true' 或 'false')
@Test
public void testAddNewCountry(Vertx vertx, VertxTestContext context) {
System.out.println(port);
final String json = Json.encodePrettily(new Country("مالزی", true));
final String length = Integer.toString(json.length());
vertx.createHttpClient().post(port, "localhost", AllRoutes.COUNTRY)
.putHeader("content-type", "application/json")
.putHeader("content-length", length)
.handler(response -> {
response.bodyHandler(body -> {
response.statusCode();
context.completeNow();
});
})
.write(json)
.end();
}
所以这个网站很有帮助,但在 Post 终点我有一个问题,我没有任何放置或删除示例。而且我也不能使用断言来检查结果。然后我决定问一个关于如何为 Vert.x 端点编写单元测试的帮助问题?
我在 vert.x 和 junit5 here 上回答了类似的问题。
MockWebServer 是一个非常好的工具,可以帮助您测试包含 http 请求的代码。请参阅链接答案中的完整代码示例。
我想用 Junit 5 为端点编写一些单元测试,在 Vertx 3.8 的 Web 客户端中使用 post、get、put 和 delete 方法。但是我在编写这些测试时遇到了一些问题。我访问了这个 link 但我需要更多帮助来为这些端点编写单元测试。请与我分享每个请求的示例。 我有一个数据库连接,在每个注释之前的 init 方法中 已配置。
@BeforeEach:
DeploymentOptions options = new DeploymentOptions()
.setConfig(new JsonObject().put("http.port", port));
vertx.deployVerticle(new HttpVerticle(configuration, vertx, operations), options, context.completing());
感谢朋友们的提示。
编辑:
在这个 site 中,我在 vert.x 中找到了编写单元测试的一个很好的示例,然后在服务运行并在 [=34= 上工作之前开始编写我自己的端点测试].当我调用 get 端点时,一切正常。但是当我想尝试 Post 端点并使用英语字符测试通过时,但是当我尝试使用波斯语字符进行 Post 端点测试时,它不会通过并得到这个错误:io.vertx.core.json.DecodeException:无法 decode:Unrecognized 令牌 't':期待(JSON 字符串、数字、数组、对象或令牌 'null', 'true' 或 'false')
@Test
public void testAddNewCountry(Vertx vertx, VertxTestContext context) {
System.out.println(port);
final String json = Json.encodePrettily(new Country("مالزی", true));
final String length = Integer.toString(json.length());
vertx.createHttpClient().post(port, "localhost", AllRoutes.COUNTRY)
.putHeader("content-type", "application/json")
.putHeader("content-length", length)
.handler(response -> {
response.bodyHandler(body -> {
response.statusCode();
context.completeNow();
});
})
.write(json)
.end();
}
所以这个网站很有帮助,但在 Post 终点我有一个问题,我没有任何放置或删除示例。而且我也不能使用断言来检查结果。然后我决定问一个关于如何为 Vert.x 端点编写单元测试的帮助问题?
我在 vert.x 和 junit5 here 上回答了类似的问题。
MockWebServer 是一个非常好的工具,可以帮助您测试包含 http 请求的代码。请参阅链接答案中的完整代码示例。