Как написать метод модульного тестирования веб-клиента Post, Get, Put, Delete для Vert.x для конечных точек - PullRequest
2 голосов
/ 06 февраля 2020

Я хочу написать несколько юнит-тестов с Junit 5 для конечных точек с методом post, get, put и delete в веб-клиенте в Vertx 3.8. но у меня есть некоторые проблемы, чтобы написать эти тесты. Я посещаю эту ссылку, но мне нужна дополнительная помощь для написания модульного теста для этих конечных точек. Пожалуйста, поделитесь со мной образцом для каждого запроса. У меня есть соединение с базой данных, которое в методе init используется перед каждой аннотацией.

@BeforeEach:

DeploymentOptions options = new DeploymentOptions()
            .setConfig(new JsonObject().put("http.port", port));
    vertx.deployVerticle(new HttpVerticle(configuration, vertx, operations), options, context.completing());

Спасибо за советы, друзья.

Vertx JUnit 5 интеграция

Редактировать:

на этом сайте , я нашел хороший пример для написания модульных тестов в vert.x, а затем начал писать свой собственный тест для конечных точек, прежде чем служба будет активна и работает на CI / CD. когда я позвонил в get-point, все было в порядке. но когда я хочу попробовать конечную точку Post и использовать тестовый тестовый символ Engli sh Language, но когда я пытаюсь пройти тестовый тест End end point с персидским языковым символом, он не пройдет и получит эту ошибку: io.vertx.core. json .DecodeException: не удалось декодировать: нераспознанный токен '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();
}

, так что этот сайт полезен, но в конечной точке после публикации у меня возникла проблема, и у меня нет ни одного образца для добавления или удаления. и я не могу использовать assert для проверки результата. затем я решаю задать вопрос о том, как мне написать тестовый модуль для конечных точек Vert.x?

1 Ответ

1 голос
/ 06 февраля 2020

Я ответил на похожий вопрос о vert.x и junit5 здесь .

Очень хорошим инструментом, который помогает вам тестировать код, содержащий запросы http, является MockWebServer. См. Полный пример кода в связанном ответе.

...