如果没有数组,如何在“json_spec”gem中使用路径?

时间:2012-04-02 22:45:06

标签: ruby-on-rails json-spec

我在Rails应用程序中使用“json_spec”gem,我正在尝试创建一些Cucumber步骤来记录/测试我的API代码。

我有以下情况:

Scenario: Create new authorization
    Given an existing user and merchant
    When I post to "/api/v1/authorizations.json" with:
    """
    {"email":"user@email.com", "code": "43434", "merchant_account_id":1, "amount": 45.00}
    """
    And I keep the JSON response at "authorization/id" as "AUTH_ID"
    Then the JSON response should be:
    """
    {"authorization":{"id":1,"email":"user@email.com","amount":45.0}}
    """

我希望“authorization / id”能给我“授权”哈希中“id”键的值。 json_spec文档中的所有示例都包含数组,但在这种情况下,响应只涉及一个实体 - 在JSON中使用数组是没有意义的。当没有数组存在时,有没有办法使用路径?

1 个答案:

答案 0 :(得分:0)

当然,您使用的语法是正确的。文档示例中的场景使用对帖子的响应,然后检查该帖子是否是集合的一部分 - 因此是数组。但是,如果您要检查,例如,您的帖子现在是最后一篇文章(您只检索一个值),则使用哈希语法:

Scenario: Create new authorization
    Given an existing user and merchant
    And I post to "/api/v1/authorizations.json" with:
    """
    {"email":"user@email.com", "code": "43434", "merchant_account_id":1, "amount": 45.00}
    """
    And I keep the JSON response at "authorization/id" as "AUTH_ID"
    When I get from "/api/v1/authorizations/last.json"
    Then the JSON response at "authorization/id" should be %{AUTH_ID}