Как прочитать значение тега в методе cucumber hooks - PullRequest
0 голосов
/ 27 июня 2019

Я передаю теги для моего перехватчика огурца BeforeActions @Before, который я хочу использовать в качестве параметра внутри метода Before.

@Before("@requireLogin")
    public void defaultLogin() {
          do login here;
    }

@Before("@newUserA")
    public void login() {
          do login with a user called "newUserA";
    }

В первом @Before я использую имя пользователя по умолчанию, но в другом @Прежде чем я хочу отправить тег как подсказку, чтобы использовать этого пользователя в качестве имени пользователя для входа в систему.

Теперь я не уверен, как мне прочитать это "newUserA" в методе входа в систему.Любая помощь будет оценена.

1 Ответ

0 голосов
/ 28 июня 2019

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

Feature: Admin xxx

Background:
  Given I am logged in as an admin

Scenarios Do foo
  When I foo
   ...

Scenario: Do bar
  When I bar

Затем вы можете использовать несколько различных шагов входа в систему, чтобы четко указать различные потребности, которые у вас могут быть, и, если вы действительно умны, вы можете заставить каждый шаг определять делегирование работы вспомогательному методу, чтобы избежать дублирования кода, например * 1004. *

# Login Steps

Given "I login as an admin" do
  @i = create_user(role: 'admin')
  login as: @i
end

Given "I login as Fred" do
  @fred = create_user(first_name: 'Fred')
  login as: @i
end

Given "Fred is logged in" do
  # this one assumes that Fred has already been created
  login as: @fred
end

...

Актер (человек, который делает что-то) и то, вошли ли они в систему или нет, слишком важны, чтобы их нельзя было исключить из языка сценариев. Я настоятельно рекомендую вам изменить свой подход и не использовать теги для этого. @

...