Получи случайную криптовалюту за регистрацию!

Как я тестирую REST API огурцами. Часть 1 Разработчиков часто | Jetbulb - Программирование | IT

Как я тестирую REST API огурцами. Часть 1

Разработчиков часто спрашивают как они тестируют REST API и многие начинают рассказывать истории про тесты покрывающие контроллеры.
Да, все верно! Все это делает тесты частью исходного кода и как правило они выполняются неотделимо от сборки программы,
а значит обеспечивают быструю и понятную доставку фидбека о потенциальной работоспособности приложения.
Другими словами, разработчики быстро узнают что пошло не так.

Но с другой стороны все это порождает ряд ограничений, когда в случае написания таких тестов часто приходится прибегать в мокам (англ. - mock) и стабам (англ. - stub), чтобы не вызывать реальные сервисы в угоду изолированно выполнения тестов свободных от внешних факторов и не препятствия сборке проекта в случае, когда код работоспособен, но downstream или thrird-party сервис недоступен по причинам не зависящих от нас.
К потенциальным ограничениями можно также отнести непонимание клиента о том, что реально тесты делают и какие-то именно бизнес-сценарии они покрывают.
А вот именно это клиент и хотел бы знать, верно?

Как раз тот случай, когда нам нужен E2E (end-to-end) сценарий, да еще такой чтобы нормальным человеко-понятным языком показал, что было выполнено и каков результат.
Для этого я предпочитаю использовать BDD (Behavior Driven Development) и реализовывать этот прием при помочи Cucumber и Gherkin Syntax.
Cucumber позволяет создавать, запускать, анализировать тесты, Gherkin Syntax - описывает тесты в простой человеко-понятной форме как:
"Client does call to endpoint for getting its profile information".
Самое крутое, что весь этот зоопарк поддерживает множество языков программирования, имеет множество интеграций с другими библиотеками и сервисами, а бизнес-сценарии может описывать простой человек.
Ну круто же, а!?
Больше информации можно получить по ссылке: https://cucumber.io/

В следующих частях, я расскажу вам как всё это было успешно реализовано на нескольких проектах
и как мне удалость получить множественные "Вау, то что надо!", "Теперь я знаю, что приложение умеет! Спасибо!", "Именно то, что мы так долго ждали!".

Макс Добрынин
@maksymdobrynin