@JeanPaulBelmondo

Как тестировать запросы к API?

Возьмём например ПР - https://github.com/osiset/laravel-shopify/pull/1142
и в нём файл, например - src/Actions/VerifyThemeSupport.php

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

и я понимаю что вместо меня тесты никто не напишет, просто подскажите в какую сторону двигаться
  • Вопрос задан
  • 223 просмотра
Решения вопроса 1
dimsog
@dimsog
Переносил код с PHP 4 на 7.4...
Определите, что вы хотите тестировать - сам внешний API или поведение своего класса на ответы от API.
Тестировать внешний API нет никакого смысла, обычно он уже протестирован за вас, да и такие тесты могут выполняться гораздо дольше.

Есть смысл сделать mock-классы для Api и уже тестировать поведение своих классов на основе подготовленных ответов от API.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
lxsmkv
@lxsmkv
Test automation engineer
Сначала нужно понять какую информацию мы пытаемся получить от теста, на какой вопрос он должен отвечать. Потом решаем необходимые границы охвата. Будет это приемочный / end-to-end тест, на работающем экземпляре приложения, либо это будет "сухой" юнит или интеграционный тест. Затем думаем как такой тест можно реализовать.

Также стоит прикинуть, соразмерность затрат задаче. И понять, ту ли задачу мы хотим решить. Если говорят, что покрытие снизилось, может достаточно просто повысить покрытие, для чего может хватило бы, добиться того, чтобы тесты каким-то образом затрагивали код. Возможно к этому можно прийти более простыми способами.

Когда ход действий ясен, приступаем к исследованию доступных подсказок. Тут все как обычно.
Первое - смотрим как устроены остальные тесты на проекте, может там будет подсказка.
Второе - смотрим раздел о тестировании той библиотеки или фреймворка который используется.
Третье - беззастенчиво пользуемся опытом других людей с помощью поисковой машины. Думаю по запросу "Laravel API Testing" много чего можно будет найти. Или по запросу "PHP Mock Server"
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы