(прошу прощения, если все в одну кучу).
1. это попытка затащить дополнительную валидацию в рантайм?
2. насколько бандл разрастается?
тебе с бэкенда приходит какой-то JSON. Никакой гарантии что тип соответствует, нет. Решение в лоб JSON.parse(...) as BackendResponse опасное, хорошо бы валидировать.
Можно для разных валидаций юзать (формы и так далее), обычно берут для контрактов между фронтом и беком, чтобы гарантировать что все ок, а если нет - настучать беку
Использовал только в слое api, просто дополнительная надежность, при условии что правильно обработаешь ошибки, сделаешь интеграционные тесты и будешь генерировать контракты из схемы
хм, выглядит многообещающие, я контракты в тестах до этого генерировал (pact) и валидировал дополнительным сервисом-брокером. почитаю
У нас сейчас в проекте pact и я что то вообще не врубаюсь зачем он, для интеграционных тестов?
да, попытка замены слоя интеграционных тестов юнит-тестами. представь простую ситуацию, есть два сервиса - клиент и бэк (потребитель и провайдер). они обмениваются сообщениями (в простейшем случае rest api). как проконтролировать, что их ожидания друг относительно друга верны? как это делалось раньше - фронт мокал бэк, запускал тесты относительно него, поддерживал его актуальное состояние относительно бизнес-требований и надеялся, что бэк так же добросовестно следует требованиям. но в реальности, когда мы стыкуем бэк и фронт обязательно что-то упадет, не тот код ответа или поля нет, и начинаются качели, кто должен меняться. так вот с PACT немного по-другому, вводится промежуточный сервис-брокер, который валидирует ответы клиента и провайдера. тесты немного сложнее, но они проще и быстрее интеграционных. при запуске генерируется артефакт - контракт, который описывает структуру ожидаемого сообщения и отправляется на сервис-брокер, тот сравнивает контракт клиента с контрактом-провайледа и выявляет несоответствия. если контракты не соответствуют, тест падает и сразу видно, кто нарушил контракт
мы использовали для этих целей тесты в postman
да, вот тоже вариант. PACT еще имеет разные обертки, для скалы, жиэс, под сокеты
раст это яп или что-то другое?
если есть статья с описанным опытом, скинь, пожалуйста, в личку
PACT - это как методология
https://docs.pact.io/
к сожалению нет
спасибо, почитаю
и вот когда говорят о контрактах, я в первую очередь это понимаю, но вот вижу есть всякие суперстракты и там тоже говорят о контрактах
@kirilloid_ru вот есть такие контракты
Обсуждают сегодня