За последние 24 часа нас посетили 21886 программистов и 987 роботов. Сейчас ищут 685 программистов ...

Что тестировать при разработке API?

Тема в разделе "PHP для профи", создана пользователем Androbim, 4 авг 2021.

  1. Androbim

    Androbim Новичок

    С нами с:
    17 июн 2021
    Сообщения:
    49
    Симпатии:
    9
    Доброго времени суток!

    Никогда не приходилось покрывать тестами.
    В настоящее время разрабатываю API
    Схема, примерно, такая.
    Контроллер - передает в сервис реквест и отдает клиенту респонс
    Сервис - обрабатывает реквест, создает объекты сущностей, вызывает БД через репозиторий, или сервис другого приложения через вебссо, возвращает респонс в контроллер
    Сущности - объекты для респонсов. В основном создание объектов, иногда статика.
    Репозиторий - справочники и БД
    Кое-где используются фабрики.

    Вот такая приближенная схема.

    Вопрос, что именно здесь критично было бы покрыть тестами?

    С уважением.
     
  2. musicman3

    musicman3 Активный пользователь

    С нами с:
    30 июн 2019
    Сообщения:
    144
    Симпатии:
    12
    Адрес:
    Дыра на карте
    Так как спецификация на API статична и не будет меняться, то покрывать нужно по идее сервис, который и делает все манипуляции после получения ответа.
     
  3. neste

    neste Новичок

    С нами с:
    26 июл 2021
    Сообщения:
    8
    Симпатии:
    0
    В первую очередь надо определиться с видом тестов - модульные или функциональные. Если модульные, то, как тут уже правильно сказали, тестируют сервисы, не трогая саму БД - только логика. Если нужны функциональные, то данные шлют на нужный контроллер уже поднятого приложения и смотрят что там пришло в ответе, т.е. проходят полный цикл работы с БД и сервисами.
     
  4. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.553
    Симпатии:
    1.754
    Часто вся логика заключается в том, чтобы делать более или менее хитрые запросы к БД. И мокать нет смысла - надо именно и протестировать, что запрос правильно вернул. Тогда приходится нагружать логику тестов