Как вызвать сценарий Cucumber с помощью beforehook в другом сценарии - PullRequest
0 голосов
/ 03 мая 2018

Я использую транспортир с огурцом. У меня есть сценарий, в котором мне нужно назвать еще один сценарий в качестве предварительного условия. Узор такой:

Сценарий1:

@test1
Scenario: first scenario

Сценарий2:

@test2
//Need to call the first scenario as the pre-condition
Scenario: second scenario

Здесь я хочу использовать крючок для огурца. Итак, мой файл хука выглядит так:

this.Before({tags: ["@test2"]}, function (event, callback) {
        console.log('call the first scenario');
        this.feature(tags: ["@test1"]);
        callback();
    });

Может кто-нибудь сказать мне, как я могу сделать "this.feature (теги: [" @ test1 "]);"

1 Ответ

0 голосов
/ 03 мая 2018

В Cucumber вы делаете настройку с использованием данных.

В вашем случае вам нужно написать Given, который делает то, что делает ваш первый сценарий. Теперь возникает вопрос, как сделать это элегантно

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

Теперь для сценария 2 и его данных вы пишете новый метод scenario 1, который просто повторяет вызовы, например,

def scenario1 foo bar baz end

Сделав это, вы вынули проблему из Cucumber и в язык программирования, в котором вы реализуете свои шаги. Этот подход имеет немного крутой кривой обучения, вы должны

  1. Узнайте, как писать вспомогательные методы на выбранном вами языке
  2. Узнайте, как обмениваться вспомогательными методами между вашими функциями

Я не могу помочь вам с этим, так как вы используете JAVA, а я использую Ruby. Я знаю, что в Java это намного сложнее, чем в Ruby. Однако, безусловно, стоит научиться это делать, так как это даст вам возможность упростить все ваши куки и также даст вам возможность сделать их быстрее.

...