如何在包含参数的 Gherkin 中定义可选文本?

How to define optional text in Gherkin containing a parameter?

我有以下两步

粗体字为参数。

如何将 'on Sunday' 更改为可选?

When(/^I run a report every (.+) on (.+) at (\d{1,2}:\d{2})/, (every, day, time) => {
  console.log('every %s for day %s at %s', every, day, time);
});

When(/^I run a report every (.+) at (\d{1,2}:\d{2})/, (every, time) => {
  console.log('every %s at %s', every, time);
});

我试图将 on (.+) 周围的括号设置为 (on (.+))?,但这会使参数 Sunday 变为 周日.

如何将文本定义为可选的,但保留原始单词作为参数?

谢谢

使用 (on (.+))? 意味着您最终会在步骤定义中多一个参数。这个新参数没有用,老实说,它只会让你的步骤复杂化。

我会把它们作为两个独立的步骤。这些步骤共享的任何代码都应重构为另一个函数。

on Sunday 设为可选将使您的代码简洁且更难理解。 Gherkin 应该易于阅读。您的步骤定义也应该如此。还有许多其他代码重用技术可供您使用,使您能够编写可读和 DRY 代码。