Как я могу объединить шаги в Cucumber.js, как описано в документации Ruby Cucumber?

Здесь: https://relishapp.com/cucumber/cucumber/docs/defining-steps/nested-steps#use-#steps-to-call-several-steps-at-once

У меня нет примера кода для того, что я имею в виду, за исключением того, что я хотел бы объединить и выполнить несколько шагов в совокупности в рамках одного шага (подумайте: повторное использование кода). Я понятия не имею, как это сделать с помощью Cucumber.js; документация немного схематична. :-\


person Michael P.    schedule 19.12.2018    source источник


Ответы (1)


Короче говоря, вы не можете и, скорее всего, никогда не сможете сделать это напрямую в огурце-js.

Matt Wynne и Aslak Hellesoy, кажется, сожалеют о том, что когда-либо реализовали эту концепцию в Cucumber-Ruby, и предлагают вместо этого использовать вспомогательные методы.

aslakhellesoy прокомментировал Октябрь 16, 2012

Вызов шагов из stepdefs — это одна из тех функций, которые я бы никогда не добавил в Cucumber(-Ruby), потому что это дает людям столько веревок, на которых они могут повеситься. Это произошло из-за того, что пошаговые определения Ruby используют анонимные замыкания, которые вы не можете вызывать откуда-либо еще (если только вы не пройдете через обручи).

С JavaScript ситуация другая; Определения шагов используют первоклассные функции!


Мэттвин прокомментировал авг 27, 2014

Я предлагаю вам использовать вспомогательные методы в вашем мире для достижения такого повторного использования. Мы реализовали эту функцию (мы называем ее «вложенными шагами») в Ruby Cucumber, и ее было сложно поддерживать, и это привело к очень сложным зависимостям в тестовом коде людей.

Очевидно, Жюльен Биземанс согласен

jbpros прокомментировал авг 13, 2014

Спасибо @cono за пиар. Однако, как обсуждалось ранее, это не будет реализовано в Cucumber.js.

Подробнее по теме:

person engineersmnky    schedule 19.12.2018
comment
Спасибо! Я целую вечность искал, как это сделать, но, думаю, пришло время сдаться. Было бы неплохо сгруппировать некоторые общие утверждения вместе, просто создав агрегированный оператор в файле функций... Ах, хорошо. - person twomarktwo; 18.07.2019