我正在编写一个黄瓜框架来测试一组使用长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 回答
我更喜欢隐藏黄瓜步骤中响应格式的任何概念 .
相反,我更喜欢在更高级别上执行步骤,并在步骤定义中使用验证方法 .
例如
在我的步骤定义中,我将有一个validate_response方法,它捕获最后一个响应并根据输入检查用户详细信息 .