Попытка проверить простую функцию, которая содержится в очень сложной функции.
Простая функция требует нескольких шагов, прежде чем она может быть запущена. Эти шаги имеют много последствий для базы данных, но они не имеют никакого взаимодействия с самой функцией.
Поскольку мы хотели бы протестировать эту простую функцию только через наш API, одной из идей было создать маршрут, предназначенный для тестирования этого. Затем мы будем время от времени посещать этот маршрут, проверяя, работает ли эта функция.
Меня несколько беспокоит наличие одного или нескольких маршрутов только для единственной цели тестирования. Но я вижу преимущества, которые многочисленны.
Это хорошая практика или есть лучший способ сделать это?
Трудно ответить на вопрос с таким уровнем абстракции, как вы могли бы описать что-либо. Но в двух словах, если доступ к самой функции является сложным, то будет и тест.
Интеграционное тестирование — это фаза тестирования программного обеспечения, на которой
отдельные программные модули объединяются и тестируются в группе.
Я думаю, вы немного ошибаетесь, говоря, что ваши функции не зависят друг от друга. Если есть ряд шагов, которые обязательный, это указывает на наличие связи между ними. Вам следует либо протестировать их вместе, как предложено в приведенной выше цитате, либо отделить ваши функции, чтобы они могли быть действительно автономными.
Например, можно использовать функцию публикации новостей, которая требует аутентификации и авторизации. Есть некоторые помощники встроить, чтобы облегчить такие тесты в самом Laravel. Если этот пример достаточно похож на вашу проблему, гораздо лучшим решением было бы написать такого помощника, чем создавать для него задание cron. С заданием cron вам нужно будет повторять одно и то же в каждой имеющейся среде, а также во всех средах разработчиков.
Других решений пока нет …