С 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 ListallCities = 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”