Cucumber. Использование бизнес-шагов в фича-файлах

В компании разрабатывается базовый фреймворк для автотестов, в котором описывают атомарные шаги (“открыть страницу {url}”, “нажать на кнопку {button_name}” и т.д.).
На основе базового фреймворка разрабатываются автотесты для нескольких систем.
По задумке, на системах вместо атомарных шагов в фича-файлах должны использовать бизнес-шаги. Грубо говоря, вместо

Дано открыть страницу {login_page}
И в поле {login} ввести "login"
И в поле {password} ввести "password"
И нажать на кнопку "Войти"

должно быть

Дано войти в систему под пользователем "login"

А уже под капотом бизнес-шага должны быть атомарные шаги из базового фреймворка (“открыть страницу”, “кликнуть по кнопке” и т.п.).
Возможно ли, чтобы в один шаг можно было завернуть несколько других подобным образом?

каждый атомарный шаг у вас - это вызов какого-то кода
никто вам не мешает при написании общего шага дёргать эти же методы

1 лайк

Как выше заметил Владислав, вам просто надо выносить в общие методы этот код и на реализации шага по входу в систему последовательно дёргать эти методы. Либо вызывать сами шаги - некоторые BDD фреймворки умеют это делать, а некоторые не умеют вызывать другие шаги - поэтому только выносить методы в общие методы, котоые будут вызываться из разных мест.

1 лайк