Приемочный тест не пройден, когда JS включен - PullRequest
2 голосов
/ 13 июля 2011

У меня странная проблема с моим приемочным тестом для страницы входа.

Вход в систему работает нормально, когда JS не включен, т.е. следующий случай:

  scenario "login with valid authentication" do
    visit login_path
    page.should have_content("Sprout Login")
    fill_in("user_login", :with => "mark")
    fill_in("user_password", :with => "secured")
    click_button "Sign in"
    page.should have_content("mark")
  end

Но когда я включил JavaScript, вход в систему завершается неудачно и выдает неверное сообщение для входа.

  scenario "login with valid authentication", :js => true do
    visit login_path
    page.should have_content("Sprout Login")
    fill_in("user_login", :with => "mark")
    fill_in("user_password", :with => "secured")
    click_button "Sign in"
    page.should have_content("mark")
  end

Кстати, я использую Devise для аутентификации. Заранее спасибо.

ОБНОВЛЕНИЕ: недавно заметил, что когда js включен, тестовый сервер не запускается и, следовательно, вход в систему не удается. Есть идеи?

Ответы [ 2 ]

0 голосов
/ 21 июля 2011

У меня возникла та же проблема, и я нашел поток с решением :

RSpec.configure do |config|
  config.use_transactional_fixtures = false

  config.before(:suite) do
    DatabaseCleaner.strategy = :truncation
  end

  config.before(:each) do
    DatabaseCleaner.start
  end

  config.after(:each) do
    DatabaseCleaner.clean
  end

end

Чтобы все работало с DatabaseCleaner, вам нужно включить гем database_cleaner.Если вы не использовали его раньше, вам может потребоваться rake db:test:prepare перед повторным запуском тестов.Я надеюсь, что это работает и для вас!

0 голосов
/ 17 июля 2011

Ваши тесты не пройдут, если пользователь по умолчанию не будет создан и войдет в систему перед каждым тестом.Devise предоставляет помощников по тестированию, которые упрощают создание и регистрацию пользователя по умолчанию.Создайте файл spec / support / devise.rb:

RSpec.configure do |config|
  config.include Devise::TestHelpers, :type => :controller
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...