首页 文章

黄瓜:阅读带占位符的模板

提问于
浏览
1

我正在编写一个黄瓜框架来测试一组使用长JSON格式参数的API调用 . 我想在模板文件中隐藏JSON,以便让用户更容易阅读和DRYer,因为模板可能被其他场景和功能文件使用 . 模板包含占位符,我想装配黄瓜/红宝石代码来填写示例表中定义的值 . 似乎ERB是最接近替代品的人 . 但是,我还没有找到一种方法来绑定示例表中的定义 .

可能唯一的解决方法是通过预处理器运行要素文件和模板,预处理器将它们组合在一起并制作最终的特征文件 . 如果可能的话,我正在寻找更优雅的单步解决方案 .

示例功能文件代码:

Feature: Create users
Scenario Outline: Test create a merchant user

Given I am logged in
When I send a :post request to "createUser" using the "Merchant" template:
Then the JSON response should have "$..status" with the text "success"

Examples:
  | OrgName                   | KeyName             | KeyValue   |
  | CClient_RMBP_0_UNIQ_      | paramX              | TRUE       |
  | CClient_RMBP_1_UNIQ_      | paramY              | some text  |
  | CClient_RMBP_2_UNIQ_      | paramZ              | 12345      |

示例Merchant.json文件:

{
    "Organization": {
        "parameters": [
            {
                "key": "orgName",
                "value": {
                    "value": "<OrgName>"
                }
            },
            {
                "key": "<KeyName>",
                "value": {
                    "value": "<KeyValue>"
                }
            }
        ]
    },
    "parentOrganizationId": "1",
    "User": {
        "firstName": "Mary",
        "lastName": "Smith",
        "id": "<OrgName>",
        "language": "en",
        "locale": "US",
        "primaryEmail": "primary@mailaddr.com",
        "cellPhone": "1-123-456-7890"
    },
    "active": "true"
}

1 回答

  • 0

    我更喜欢隐藏黄瓜步骤中响应格式的任何概念 .

    相反,我更喜欢在更高级别上执行步骤,并在步骤定义中使用验证方法 .

    例如

    When I attempt to create a user using the <type> template
    Then the response is successful and contains the user's details
    

    在我的步骤定义中,我将有一个validate_response方法,它捕获最后一个响应并根据输入检查用户详细信息 .

相关问题