请帮助我了解BDD和功能文件的最佳用法。
我有休息电话,需要验证响应数据。我可以按如下所述从功能文件中给出预期的响应数据吗?
Then response includes the following in any order:
| data[].username | 1111 |
| data[].phoneNumbers[].phoneNumber | 122-222-2222 |
| data[].retailLocationRoles[*].securityRoleId | 10 |
否则我应该将预期的响应数据(如上所述的表数据)保存在外部文件中并在代码内部读取吗?这是最佳做法吗?
如果将来预期的响应数据发生更改,那么在功能部件内部进行更改是否是一个好主意?还是我们需要遵循TDD流程?
有人建议我将数据保留在外部文件中,而不是在功能文件中,并在代码内部读取外部文件数据,并说在响应数据更改时更改功能文件不是一个好主意。
感谢阅读。
答案 0 :(得分:1)
完全取决于您。如果您从外部文件读取,则可以在多个功能中重复使用它们。如果您不需要重复使用,请使其保持在线状态。并且请不要担心您可以ignore it使用“ BDD”。
将JSON文件保留在外部的另一个好处是,您可以在JSON编辑器中打开它们。
不要过度思考测试,只是开始就可以,一旦您理解了这些概念,就可以在以后轻松地进行开发。
由于您似乎只在寻找特定项目,因此正常匹配就足够了:
* def response = { data: [ { username: '1111', phoneNumbers: [ '122-222-2222' ], retailLocationRoles: [ { securityRoleId: 10 } ] } ] }
* def phone = '122-222-2222'
* def role = { securityRoleId: 10 }
* def user = { username: '1111', phoneNumbers: '#(^phone)', retailLocationRoles: '#(^role)' }
* match response.data contains user
如果需要,可以通过user
重用上面的call
对象到JS文件或功能文件。