Моя задача здесь состоит в том, чтобы найти лучший способ протестировать приложение API Symfony (3.4) с использованием Behat / Mink для функционального теста на моей платформе CICD.
Поскольку мои процессы тестирования должны вызываться в оболочкесценарий, все тесты должны быть очень линейными.У меня нет возможности запустить автономный веб-сервер, такой как Apache или PHP / Symfony.Кроме того, Docker не является опцией.
На данный момент я могу успешно протестировать глаголы GET API, используя синтаксис Mink:
-- file test.feature
@function1
Scenario Outline: Test my api
When I go to "/api/v1/hello"
Then the response is JSON
Инструкция "Я иду"реализовано Mink (http://docs.behat.org/en/v2.5/cookbook/behat_and_mink.html) и эмулирует только запрос GET. Когда эта инструкция вызывается BeHat, ядро Symfony приложения «порождается», а метод «api / v1 / hello» вызывается внутренне:нет сетевого трафика, нет TCP-соединения, нет необходимости в выделенном веб-сервере (apache или автономном сервере Symfony). Похоже, Behat эмулирует веб-сервер и запускает приложение Symfony самостоятельно в своем собственном пользовательском пространстве.
Теперь я хочу проверить глаголы POST моего API с полезной нагрузкой json, но, к сожалению, у Минка нет других глаголов, кроме GET.
Я прочитал несколько статей через Интернет (ключевое слово: behat testpost api), но все, что я видел, основано на клиенте Guzzl / Curl. Таким образом, между клиентом и сервером установлено http://localhost, и настоящий веб-сервер должен ответить на запрос.st.
Я хочу, чтобы API Symfony вызывался изнутри без использования другого веб-сервера.Есть способ сделать это ?Как протестировать API-интерфейс Symfony REST и особенно глагол POST без отдельного сервера для ответа?
Спасибо.