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



我有以下两个步骤

  • 当我每周日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);
});

我试图将on (.+)周围的括号设置为类似(on (.+))?,但这使参数"星期日前"变为"星期日后

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

感谢

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

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

on Sunday设为可选将使代码简洁且难以理解。小黄瓜应该很容易阅读。你的步骤定义也是如此。您可以使用许多其他代码重用技术来编写可读的DRY代码。

最新更新