Войти, используя заголовки в огурце

Я новичок в огурцах и капибарах, так что, может быть, это легко.

Я использую заголовки, чтобы проверить, вошел ли пользователь в систему или нет, и у меня возникла проблема при тестировании огурца.

Я использую Capybara и Cucumber и «хак с добавлением заголовков»: http://aflatter.de/2010/06/testing-headers-and-ssl-with-cucumber-and-capybara/

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

Пример истории:

Given I am logged in as a superuser
And I have a database "23456789" that is not active
And I am on the home page
When I follow the "Delete" link for "23456789.sqlite"
Then I should see "Deleted the database"

В этой истории строка «Когда я перехожу по ссылке «Удалить» для строки «23456789.sqlite» не будет работать, поскольку пользователь больше не вошел в систему!

Думали об использовании сеанса или до / после в огурце.

Кто-нибудь знает, как это исправить?


person hinderberg    schedule 14.07.2010    source источник


Ответы (1)


Вы можете добиться этого, передав имя пользователя в переменной среды:

When /^I am logged in as a superuser$/ do
  ENV['RAILS_TEST_CURRENT_USER'] = 'admin'
end

application_controller.rb:

before_filter :stub_current_user

def stub_current_user
  if Rails.env == 'cucumber' || Rails.env == 'test'
    if username = ENV['RAILS_TEST_CURRENT_USER']
      @current_user = User.find_by_username(username)
    end
  end
end
person Leventix    schedule 14.07.2010