我正在编写一个黄瓜框架来测试一组使用长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"
}
答案 0 :(得分:0)
我更喜欢隐藏黄瓜步骤中响应格式的任何概念。
相反,我更倾向于让步骤更高,并在步骤定义中验证方法。
e.g。
When I attempt to create a user using the <type> template
Then the response is successful and contains the user's details
在我的步骤定义中,我将有一个validate_response方法,它捕获最后一个响应并根据输入检查用户详细信息。