2016-12-07 4 views
0

У меня есть один сценарий, который имеет много шагов, и вся его целью является генерацией данных, например:Как запустить сценарий огурца как шаг?

Scenario: Data generation 
Given dataGen statement 1 
And dataGen statement 2 

... 
And dataGen statement 100 

Я хочу использовать весь этот сценарий (то есть все 100 операторов) в качестве одного шага в другом сценарии. Я хочу сделать что-то вроде:

scenario: Data generation and then assert 
(everything in previous scenario) 
Then I assert my assertion 

Но было бы глупо копировать и вставлять все.

Есть ли способ огурца сделать вызов сценария как один шаг? или группировать заявление 100 в некоторую структуру в целом и называть ее?

Спасибо,

ответ

0

Не уверен, что если есть способ вызова шаг сценария от другого в огуречной-JVM. В рубиновой реализации допускаются некоторые шаги вложенности. Вы можете попробовать нижнюю java.

Преобразование вашего сценария в схему сценария с двумя таблицами с их собственными тегами. Если вы хотите только генерировать данные, пройдите @Data тег до cucumberoptions вашего класса бегунов. И @DataAndAssert, когда требуются обе операции. Основой логики на этапе утверждения со значением булевского флага.

Scenario Outline: Data generation and then assert 
    Given dataGen statement 1 
    And dataGen statement 2 

    ... 
    And dataGen statement 100 
    Then I assert my assertion <flag> 

    @Data 
    Examples: Data Generation Only 
    | flag | 
    | false | 

    @DataAndAssert 
    Examples: Data Generation And Assertion 
    | flag | 
    | true | 
+0

обходной путь. Но это не так удобно, если dataGen используется множеством тестовых примеров. Я ищу что-то, что по крайней мере может запустить функцию в @Before. – user1559625

+0

В @Before крюк огурец не будет вызывать функции и определение шага. Если вы хотите пойти таким путем, вам нужно будет называть его urself, используя метод обёртки, который вызывает код определения шага. – Grasshopper

+0

вещь «@before» hook будет вызывать только код java, я не хочу копировать сто строк повторяющегося кода Java, преобразованного с шага огурца на крючок @before. он побеждает цель того, почему я пишу эти данные в виде огурца в первую очередь. – user1559625

Смежные вопросы