Cucumber 如何在小黄瓜中定义包含参数的可选文本?

Cucumber 如何在小黄瓜中定义包含参数的可选文本?,cucumber,gherkin,Cucumber,Gherkin,我有以下两个步骤 当我每周在周日22:00运行报告时 当我每天在22:00运行报告时 其中粗体文本为参数 如何将“onSunday”更改为可选 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 repor

我有以下两个步骤

  • 当我每周日22:00运行报告时
  • 当我每天在22:00运行报告时
其中粗体文本为参数

如何将“onSunday”更改为可选

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);
});
我试图将(.+)上的
周围的括号设置为类似于(.+)?
,但这会使参数Sunday变为周日的

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

感谢使用
(on(+)?
意味着您在步骤定义中又多了一个参数。这个新参数是无用的,老实说,它只会使您的步骤复杂化

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

周日选择
将使你的代码简洁易懂。小黄瓜应该易于阅读。你的步骤定义也应该如此。您还可以使用许多其他代码重用技术来编写可读且枯燥的代码