Что конкретно вы хотите протестировать?
У нас есть ряд автоматических проверок работоспособности, которые мы запускаем для каждой сборки:
Является лисхема действительна (согласно graphql-js
)?Это может быть на удивление легко испортить, если ваша реализация допускает, например, несколько определений с одним и тем же именем типа или любое другое количество скрытых ошибок.
Является ли это критическим изменением схемы?Если это так, прервите сборку, если нет специального сообщения git commit, подтверждающего и принимающего его.С graphql-js
это довольно просто - запустите запрос самоанализа для текущего производства, запустите его для текущей сборки и используйте встроенную функцию findBreakingChanges
.
Обратите внимание, что graphql-js
тесты не означают, что ваш сервер должен быть написан на JS - наш написан на ReasonML с использованием ocaml-graphql-server , а затем при сборке мы используем набор тестов узлов, чтобы поразить его как любой другойclient.
Наконец, кроме этого, у нас есть несколько тестов, которые запускают запросы / мутации для сквозного теста сервера API.В целом, это было довольно устойчиво к регрессиям.
И имейте в виду, что вы можете просто поразить ваш сервер GraphQL любым http-клиентом, не имеет , чтобы быть GraphQL-осведомленность в вашем тестовом наборе.Я бы рекомендовал этот маршрут в дополнение к проверкам работоспособности, о которых я упоминал выше.