2011-07-13 12 views
2

ログインページの受け入れテストに奇妙な問題があります。jsを有効にすると受け入れテストに失敗しました

jsが有効になっていないと、ログインが正常に機能します。次の場合:

しかし、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が有効になっていると、テストサーバーが起動していないためログインに失敗していることが最近気付きました。何か案が?

答えて

0

デフォルトのユーザーが作成され、各テストが実行される前にログインするまで、テストは失敗します。 Deviseは、テスト・ヘルパーを提供して、デフォルト・ユーザーの作成とログインを簡単にします。

RSpec.configure do |config| 
    config.include Devise::TestHelpers, :type => :controller 
end 
+0

それはあなたを助けましたか? – Anatoly

+0

いいえ、問題はテストサーバーの起動であると思います。テストを起動すると、自動的にテストサーバーを起動しなければならないと思いますが、テストサーバーは自動的に起動しませんでした。私は手動でサーバ 'rails -s -e test 'を起動してから再度テストをしなければなりません。混乱は、jsが有効になっているときにのみこれが起こる理由です。 :S – kxhitiz

0

私は同じ問題を持つとa thread with a solution見つかった:あなたはdatabase_cleaner宝石を含める必要があります動作するようにDatabaseCleanerのものについて

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 

をファイル仕様/サポート/ devise.rbを作成します。 。以前に使用していない場合は、テストを再実行する前にrake db:test:prepareにする必要があります。私もこれがあなたのために働くことを願っています!

関連する問題