Можно ли выполнять различные действия на шаге огурца в зависимости от используемого тега (или нет)? - PullRequest
3 голосов
/ 13 декабря 2011

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

Можно ли проверить наличие и имя тега на шаге?изменить поведение?(Я понимаю, что мог бы просто создавать разные шаги, но это не СУХО, не так ли?)

Псевдокод, объясняющий, что я хочу после

When /^I sign in as "(.*)\/(.*)"$/ do |email,password|
  step %{I go to the sign in page}
  step %{I fill in "user_email" with "#{email}"}
  step %{I fill in "user_password" with "#{password}"}

  if tag && tag == "@javascript"
    step %{I follow "LOG IN"}
  else
    step %{I press "LOG IN"}
  end
end

Ответы [ 2 ]

5 голосов
/ 15 декабря 2011

Я справился с этим, используя ловушки для установки переменных, что может быть полезно, если ваш тег не связан с драйвером:

Before('@mobile') do
    @mobile = true
end

When /^I go to the homepage$/ do
    if @mobile
        visit "m.mysite.com"
    else
        visit "www.mysite.com"
    end
end
3 голосов
/ 14 декабря 2011

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

Capybara.current_driver

Итак, если вы используете другой драйвер для сценариев с тегами @javascript, это должно сработать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...