Behat Mink-无法在不知道标识符的情况下测试其余方法

时间:2019-04-04 17:55:42

标签: php symfony behat

我有一个问题来测试一些其他的api:我无法从创建的资源中获取ID以检查该资源是否存在。在这里,我正在检查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

有人知道如何从上次响应中获取ID并在第二种情况下进行操作吗?

2 个答案:

答案 0 :(得分:1)

这些场景是并且应该是独立的,除非您定义自己的步骤并独立地将该值保存在使用静态数据的数据类中,否则我认为您不能在第二个场景中使用第一个场景中的值变量/方法,然后在第二步阅读。

答案 1 :(得分:0)

最后,我受https://github.com/api-platform/core/blob/master/features/main/uuid.feature的启发,使我能够为我的API设置标识符。 所以看起来像: 1)我有教义的数据文件,我在其中添加了一些带有硬编码标识符的记录来管理测试中所需的依赖项 2)我在测试中使用这些标识符 3)我使用IDENTIFIER创建一些资源