如何在包含参数的 Gherkin 中定义可选文本?
How to define optional text in Gherkin containing a parameter?
我有以下两步
- 当我每周 星期日 22:00[=36] 报告时=]
- 当我 运行 每 天 在 22:00
报告
粗体字为参数。
如何将 '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 代码。
我有以下两步
- 当我每周 星期日 22:00[=36] 报告时=]
- 当我 运行 每 天 在 22:00 报告
粗体字为参数。
如何将 '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 代码。