Как определить необязательный текст в корнишоне, содержащий параметр? - PullRequest
1 голос
/ 27 марта 2020

У меня есть следующие два шага

  • Когда я запускаю отчет каждую неделю в Воскресенье в 22: 00
  • Когда я запускаю отчет каждый день в 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 (.+))?, но это делает параметр воскресенье до в воскресенье .

Как определить текст как необязательный, но оставить исходное слово в качестве параметра?

Спасибо

1 Ответ

1 голос
/ 27 марта 2020

Использование (on (.+))? означает, что вы получите еще один параметр для определения шага. Этот новый параметр бесполезен, и, честно говоря, он только усложняет ваш шаг.

Я бы оставил их как два отдельных шага. Любой код, совместно используемый этими шагами, должен быть преобразован в другую функцию.

Включение необязательного on Sunday сделает ваш код лаконичным и трудным для понимания. Огурец должен быть легко читаемым. Так должны ваши шаги определения. В вашем распоряжении множество других методов повторного использования кода, которые позволяют вам писать читаемый и DRY код.

...