验证在 cucumber/Gherkin 中包含多个相关字段的 REST 响应的最佳实践是什么?我们正在使用场景大纲,因此使用示例表对事物进行参数化。
以下是我考虑过的一些方法:
最简单的方法是将每个字段添加为示例表中的列。但这很快就变得非常难以阅读,因为示例表超出了屏幕的宽度,我们最终在表单的每个场景中都有近十几个步骤:And the <fieldName> should be <value>
. 这是非常冗长的,显然与 Gherkin 旨在模仿自然语言的精神背道而驰。
接下来,我考虑将响应主体作为一个整体放入 JSON 格式的文件中,并在一个步骤中验证它And the response matches <file containing expected response>
(示例表将只包含文件的路径)。但是,这使得我在测试中验证的内容非常不透明,因为实际的字段和数据值隐藏在另一个文件中。此外,我读到测试步骤不应该关注数据的确切格式(JSON、XML 或其他)。
之后我阅读了这篇文章,在指定多个字段的步骤之后使用垂直表。导致这样的事情:
And the response contains:
| field1 | value1 |
| field2 | value2 |
但是,我不确定如何参数化它。单个原子值进入示例表中的一列,但整个其他表呢?我调查了是否支持嵌套表,但似乎有些人认为这是不可读和不好的做法。
那么,这种情况的一般最佳实践是什么?对于参数化场景,哪种方法可以在自然语言可读性和准确传达您的期望之间取得最佳平衡?