Это не прямой ответ, но я не согласен с посылкой в вашем вопросе, но у меня есть решение, поэтому я все равно выскажу свое мнение.
мнение, которое другие пользователи Cucumber рассмотрят* идиоматический и без паттернов
Это утверждение, к сожалению, невозможно удовлетворить.
Вот Брэндон Хранители CollectiveIdea, занимающие общепринятую позицию, к которой вы должны стремитьсяуниверсальные, многократно используемые шаги , что имеет смысл с общей точки зрения «Не повторяйся».
Однако, вот Аслак Хеллесой, автор Cucumber, который также принимает общепринятые (но взаимоисключающие)Считая, что вы должны стремиться к конкретным сценариям , что имеет смысл с точки зрения «зачем вообще нужен Огурец?»
Из вышеприведенной «Тренировочных колес», Аслак делаетдва примера сценария, чтобы резко противопоставить два стиля: многократно используемые шаги против специфичные для сценария .
После нескольких лет использования Cucumber в обоих стилях и с учетом вышеуказанной дилеммы, я пришел к выводу:
- Повторно используемые шаги становятся кошмаром обслуживания, так как вам нужно поддерживать более сложные определения шагов, покатакже избегая конфликтов имен.
- Шаги для конкретных сценариев предпочтительнее для удобства чтения и простоты, но также становятся кошмаром обслуживания только из-за конфликтов имен.
Итак, я решил, чтоВ настоящее время огурец разбит, и обычная капибара поверх вашей любимой среды модульного тестирования является наиболее гибкой.
Огурцы могут, если они захотят, добавить контексты сценариев, специфичные для объектов сценарии, пространства имен сценариев и т. Д., Чтобы вы моглиможет каким-то образом охватить ваши сценарии - по функциям, ролям пользователей - независимо от того, что имеет смысл - и значительно уменьшить конфликты имен, чтобы сделать конкретные шаги сценария действительно жизнеспособными.На данный момент, я думаю, будет явный стилистический победитель.До тех пор всегда будет существовать напряжение необходимости абстрагировать ваши шаги во избежание конфликтов имен, а не сохранять их в зависимости от сценария для простоты и читаемости.
Альтернативный проект, который пытается устранить эти недостатки, - * 1035.* Шпинат , но проект не так уж активен. Смотрите мои комментарии здесь об оценке Spinach vs Cucumber .