有没有办法在 Cucumber 示例数据 table 中使用变量?

Is there a way to use variables in Cucumber Examples data table?

基本上,我一直在寻找一种在 Cucumber 示例数据 table 中使用某种 Java 变量的方法。因此,post-执行,当生成报告时,我应该能够查看用作特定步骤的一部分的变量的当前值,而不是引用数据 table 单元格。 例如,考虑今天的日期或时间戳,因为我不想对这些变量进行硬编码。不使用变量,所有场景看起来都一样。

您要求的不是好的做法,恰恰相反。

当代码依赖于当前日期时间时,最好模拟当前日期时间以进行测试。

您可以将当前日期时间作为参数传递,也可以将其注入。

测试时,您传递硬编码的日期时间,这将是测试用例的先决条件。

当 运行 应用程序处于生产状态时,您传递了真实的当前日期时间。

Java 有一个用于模拟当前日期时间的有用类型,称为 Clock。

更新:

无论是否模拟日期时间,您都不能在 Cucumber 场景中使用变量,因为它没有任何意义。 BDD 是关于提供具有具体数据的具体示例。场景大纲中使用的变量只是将多个场景组合在一起的一种方式(我们为数据表中的变量提供的每种值组合)。