Behat норка - не может проверить методы отдыха без идентификатора - PullRequest
0 голосов
/ 04 апреля 2019

У меня была проблема, чтобы проверить некоторые остальные API: я не могу получить идентификатор из созданного ресурса, чтобы проверить, существует ли этот ресурс. Здесь я проверяю id: dab2b33f-0a36-4cd6-a0d4-c175515abbab, но каждый раз, когда я запускаю «Сценарий: Добавить новый город», у меня был другой идентификатор.

  Scenario: Add new city
    When I add "Content-Type" header equal to "application/json"
    And I add "Accept" header equal to "application/json"
    And I send a "POST" request to "/cities" with body:
    """
    {
      "name": "City1",
      "geo": {
        "latitude": 0,
        "longitude": 0
      }
    }
    """
    Then the response status code should be 201
    And the response should be in JSON
    And the header "Content-Type" should be equal to "application/json; charset=utf-8"

  Scenario: Delete city with existing id
    When I add "Content-Type" header equal to "application/json"
    And I add "Accept" header equal to "application/json"
    And I send a "DELETE" request to "/cities/dab2b33f-0a36-4cd6-a0d4-c175515abbab"
    Then the response status code should be 204

Кто-нибудь знает, как получить идентификатор из последнего ответа и оперировать вторым сценарием?

Ответы [ 2 ]

1 голос
/ 09 апреля 2019

Сценарии являются и должны быть независимыми, я не думаю, что вы можете использовать значение из первого сценария во втором сценарии, если вы не определите свои собственные шаги и не сохраните значение независимо, возможно, в классе данных, используя статические переменные / методы и читайте их во второй.

0 голосов
/ 16 апреля 2019

Наконец, я вдохновился https://github.com/api-platform/core/blob/master/features/main/uuid.feature,, позволившим установить идентификатор для моего API.Так это выглядит следующим образом: 1) У меня есть исправления данных доктрины, в которые я добавляю некоторую запись с жестко заданным идентификатором для управления зависимостями, необходимыми в тестах 2) Я использую эти идентификаторы в своих тестах 3) Я создаю некоторый ресурс с IDENTIFIER

...