Gherkin/Cucumber是否有"for each"或等效语法?

CLo*_*ian 3 cucumber gherkin

小黄瓜是否有相同的"每个"声明?在下面的场景中,我正在测试的页面有多个日期字段,我想在其上运行相同的测试示例.

这是我想建模的场景.

场景大纲:修改日期控件的精度值

Given I have just added a record

 When I select <precision>

  And I select <value>

 Then <date> displays in the <date type> field
Run Code Online (Sandbox Code Playgroud)

例子:

  | date type | precision | value           | date                     |

  | Date 1    | Unknown   | N/A             | "Unknown"                | 

  | Date 1    | Year      | <current year>  | <current year>           |

  | Date 1    | Month     | <current month> | <current month, year>    |

  | Date 1    | Day       | <current day>   | <current month/day/year> | 

  | Date 2    | Unknown   | N/A             | "Unknown"                | 

  | Date 2    | Year      | <current year>  | <current year>           | 

  | Date 2    | Month     | <current month> | <current month, year>    | 

  | Date 2    | Day       | <current day>   | <current month/day/year> | 
Run Code Online (Sandbox Code Playgroud)

假设同一页面上有5个日期类型字段.似乎没有必要在表中复制/修改12行以覆盖日期3 - 日期5.这就是为什么我想知道是否存在"for each"等价物,以便我可以为每个日期类型执行相同的示例必须在Examples表中明确显示.或者也许我可以通过不同的方式构建场景?

感谢您提供的任何帮助!

Cri*_*tik 5

不,黄瓜的设计并没有考虑到循环.Cucumber的范围是允许从用户角度定义应用程序预期.而且由于真正的用户不会"循环",所以用黄瓜实现它是没有意义的.

从程序上讲,可以做的是编写一个程序,为您的应用程序中的每个组合生成相同的黄瓜脚本.