Ответ 1
Karate - это относительно новая платформа автоматизации тестирования веб-сервисов, которая хорошо подходит для тестирования ответов GraphQL из-за двух специфических возможностей.
- манипулирование текстом: легко выполнять встроенные запросы GraphQL, читать их из (повторно используемых) файлов и заменять заполнители
- Утверждения JsonPath: хотя ответы GraphQL являются JSON, они изменяются динамически в зависимости от запроса (без фиксированной схемы) и имеют тенденцию быть глубоко вложенными. Собственные утверждения JsonPath по каратэ позволяют сосредоточиться только на нужных вам кусках, а также вы можете выразить ожидаемые результаты в краткой форме JSON, которая очень удобочитаема.
Вот хороший пример: graphql.feature
с фрагментом ниже:
# you can also read this query from a file
Given text query =
"""
{
pokemon(name: "Pikachu") {
id
number
name
attacks {
special {
name
type
damage
}
}
}
}
"""
And request { query: '#(query)' }
When method post
Then status 200
# json-path makes it easy to focus only on the parts you are interested in
# which is especially useful for graph-ql as responses tend to be heavily nested
* match $.data.pokemon.number == '025'
# the '..' wildcard is useful for traversing deeply nested parts of the json
* def attacks = get[0] response..special
* match attacks contains { name: 'Thunderbolt', type: 'Electric', damage: 55 }
Для не-Java команд Карате предоставляет двоичный исполняемый файл, который требует только JRE, а кода Visual Studio достаточно в качестве IDE. Программисты JavaScript будут особенно чувствовать себя как дома из-за того, как Каратэ встраивает среду выполнения JavaScript и поддерживает "мягкий" JSON (нет необходимости в двойных кавычках, нет необходимости заключать ключи JSON в кавычки).
РЕДАКТИРОВАТЬ: здесь 10-минутное видео молниеносного разговора с демонстрациями, которые объясняют это.
Отказ от ответственности: Dev здесь.