Встроить в библиотеку функционал для моков клиента
Выяснилось, что не хватает инструментов для тестирования прикладного кода, когда тот обращается в библиотеке api клиента. Бывает несколько сценариев:
- Встроили клиент API в админку Django, хотим вручную протестировать взаимодействие через подмену ответа от API
- Хотим тестировать прикладной код тестировать ещё до написания готового клиента
- Хотим тестировать не только локально, но и на dev сервере
Предлагается встроить в API Tools единый для всех клиентов интерфейс и набор инструментов мокания. Он должен уметь подменять ответы клиента ещё до того, как улетит запрос API и, вообще, дело дойдёт до уровня HTTP запросов.
Инструмент в целом похож на моки HTTP запросов. Отличие в том, что поднимаемся на уровень выше и мокаем не HTTP запросы/ответы, а Request/Response объекты клиента. Это позволяет мокать весь клиент целиком. Идея та же, только слоем выше.
Иллюстрация по теме:
Ниже то же самое текстом.
Преимущества API Tools перед mockapi.io:
- Возможность мокать ещё до того, как написан клиент. Достаточно наброска схем -- прототип клиентской библиотеки. Возможность разрабатывать прикладной код до готовности клиента и, даже, до готовности API. В том числе писать автотесты.
- Валидации по схеме в GUI
- GUI сама предлагает поля для заполнения
- Создание моков по истории реальных запросов
- Моки цепочек связанных запросов
- (?) Высокая избирательность моков
- Код автотестов прикладного кода проще
- Сериализуемое исключение
- Несколько источников моков: отдельный микросервис, админка Django, файлики с данными, хардкод
Преимущества mockapi.io:
- Любые языки программирования
- Любые клиентские библиотеки, непохожие на Tg API
- Есть готовый GUI
Edited by Евгений Евсеев
