Rails3 + Огурец + Factory_girl_rails + Аутлогическая проблема - PullRequest
0 голосов
/ 25 марта 2011

Я боролся с этим весь день!

В GemFile у меня есть:

group :test do
    gem 'database_cleaner'
    gem 'cucumber-rails'
    gem 'cucumber'
    gem 'rspec-rails'
    gem 'spork'
    gem 'launchy'
    gem 'capybara' 
    gem 'factory_girl_rails'
end

В моем login.feature у меня есть:

Feature: Login on my web site
  In order manage my account details
  As a security enthusiast
  I want to be able, to login and logout and view the superadmin button only when authorized

  Scenario: Check if login is working
    Given the following user records
      | email            | password |
      | julien@gmail.com | password |
      | bob@hotmail.com  | password |
    And I have 2 or more user records
    When I go to the login_url
    And I fill in "user_session_email" with "julien@gmail.com"
    And I fill in "user_session_password" with "password"
    And I press "Login"
    Then show me the page
    Then I should see "Logged in."

И, наконец, в моем файле logins_steps.rb:

Given /^the following user records$/ do |table|
  table.hashes.each do |hash|
    u = Factory(:user, hash)
  end
end

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

Если я пытаюсь войти в систему с неверным паролем, меня перенаправляют на страницу входа ...

Понятия не имею, откуда возникла эта проблема, я пытался поиграться с , включающим Authlogic :: TestCase и , требующим "authlogic / test_case" , но ни один из них работают.

Это проблема с файлом cookie, authlogic, factory_girl или огурцом, я действительно понятия не имею.

Если у кого-то есть идея, пожалуйста, не стесняйтесь оставить мне сообщение!

Ура, Julien

1 Ответ

1 голос
/ 28 марта 2011

OK, нашел ответ, Вы должны настроить хост по умолчанию (который установлен на www.example.com) для вашего домена.

Capybara.default_host = "www.website.local"
Capybara.server_port = 3000
...