Простое решение состоит в том, чтобы не пытаться повторно использовать определения шагов так часто. Одна из самых больших ошибок, которую люди делают с Cucumber, - это попытаться многократно использовать определения шагов. На самом деле совсем не важно, сколько у вас определений шагов, если в ваших определениях шагов используются вспомогательные методы.
в рубине, но я уверен, что вы можете перевести
When 'I buy a ticket' do
@ticket = buy_ticket
end
When 'I buy a second ticket' do
@second_ticket = buy_ticket
end
When 'I buy a discounted ticket' do
@discount_ticket = buy_ticket
end
When 'I buy a family ticket' do
@family_ticket = buy_ticket
end
Теперь остальная часть вашего сценария может говорить о second_ticket или family_ticket.
Примечание: здесь нет дублирования, все шаги вызывают один и тот же метод для создания заявки (вы можете использовать параметры для обработки и дополнительную сложность, которую может потребовать buy_ticket).