Рубрики
Без рубрики

Как протестировать API Quarkus GraphQL

С curl, инструментом GraphQL, бессонница и уверенность в отдыхе В предыдущей статье я описал… Помечено java, graphql, тестирование.

С curl, инструментом GraphQL, бессонница и уверенность в отдыхе

В предыдущей статье Я описал поддержку Quarks GraphQL, и мы обсудили некоторые темы GraphQL. Сейчас Я покажу вам, как протестировать ваш API GraphQL с помощью curl, инструмента GraphQL, бессонницы и уверенности в себе. В качестве примера я использую свой проект супергероя из моей последней статьи, который можно найти на GitHub, чтобы вы могли запустить и поиграть с ним .

локон

Если вы хотите попробовать GraphQL API самостоятельно, запустите проект Quartus с помощью mvn quarkus:dev и напишите следующее:

    curl --request POST \
    --url http://localhost:8080/graphql \
    --header 'Content-Type: application/json' \
    --data '{"query":"{allCities{name}}"}'

Это довольно просто. Все, что нам нужно, это создать полезную нагрузку JSON, например, с помощью запроса с одним элементом с нашим запросом в качестве значения. И в результате вы получаете вот это.

{"data":{"allCities":[{"name":"Gotham City"},{"name":"New York City"}]}}

GraphQL Инструмент

Давайте перейдем к инструменту GraphQL. Вы можете выполнить тот же запрос с помощью инструмента Quarks GraphQL. Просто введите http://localhost:8080/q/graphql-ui/ . В левой части введите запрос. Нажмите кнопку с треугольником, и тогда вы увидите результат с правой стороны.

Бессонница

Я думаю, что это довольно круто, что вы можете протестировать API-интерфейсы REST и GraphQL с помощью Insomnia. Чтобы создать запрос GraphQL, вам необходимо переключиться с тела на GraphQL в крайнем левом углу. И это все.

Будьте уверены в себе

Если вы хотите писать автоматизированные тесты, вы можете использовать Rest-Assured, как мы уже выяснили. Для полноты картины я повторяю пример из прошлой статьи. Ответ представляет собой простой JSON, поэтому мы можем утверждать о данных, возвращаемых API, точно так же, как и в случае с REST API.

@QuarkusTest
public class SuperheroTest {

    @Test
    void allCities() {
        final Response response = given()
                .contentType(ContentType.JSON)
                .body("{\"query\":\"{\\n allCities{\\n name\\n}\\n}\"}")
                .when()
                .post("/graphql")
                .then()
                    .assertThat()
                    .statusCode(200)
                .and()
                    .extract()
                    .response();

        final List allCities = response.jsonPath().getList("data.allCities", City.class);
        assertThat(allCities)
                .isNotEmpty()
                .hasSize(2)
                .extracting(City::getName)
                .contains("Gotham City", "New York City");
    }

}

Вывод

Как вы видели в этой статье, протестировать API GraphQL довольно просто. Вы можете использовать curl для быстрой проверки или инструмент GraphQL/Insomnia, если вам нужно больше удобства. Можно даже использовать REST Assured для написания автоматических тестов, потому что ответ – это чистый JSON.

Ссылки Гитхаб https://github.com/claudioaltamura/quarkus-graphql-superheroes Кварки SmallRye GraphQL https://quarkus.io/guides/smallrye-graphql Бессонница https://insomnia.rest/ Будьте уверены https://rest-assured.io/

Оригинал: “https://dev.to/claudioaltamura/how-to-test-a-quarkus-graphql-api-2029”