2012-12-14 12 views
5

Uso capibara da un po ', ma sono nuovo nella stregoneria. Ho un problema molto strano per cui se eseguo le specifiche senza Capybara: js => true funzionalità posso accedere correttamente, ma se provo a specificare: js => true su una specifica, nome utente/password non possono essere trovati.Stregoneria/Capibara: impossibile accedere con: js => true

Ecco la macro di autenticazione:

module AuthenticationMacros 
    def sign_in 
    user = FactoryGirl.create(:user) 
    user.activate! 
    visit new_sessions_path 
    fill_in 'Email Address', :with => user.email 
    fill_in 'Password', :with => 'foobar' 
    click_button 'Sign In' 
    user 
    end 
end 

che è chiamato in specifiche come questo:

feature "project setup" do 
    include AuthenticationMacros 

    background do 
    sign_in 
    end 

    scenario "creating a project" do 
    "my spec here" 
    end 

Il codice di cui sopra funziona bene. Tuttavia, se cambio le specifiche scenario da (in questo caso)

scenario "adding questions to a project" do 

a

scenario "adding questions to a project", :js => true do 

login fallisce con un 'username/password errata' combinazione. Letteralmente, l'unico cambiamento è: js => true. Sto usando il driver javascript capybara predefinito. (Carica Firefox)

Qualche idea su cosa potrebbe succedere qui? Sono completamente perplesso. Sto usando Capybara 2.0.1, Sorcery 0.7.13. Non c'è javascript nella pagina di accesso e save_and_open_page prima di fare clic su "accedi" conferma che i dati corretti sono stati inseriti nei campi nome utente/password. Qualche suggerimento davvero apprezzato - Sono in perdita.

risposta

8

Il driver javascript di capybara predefinito è Selenium in base al documento capybara. Poiché il selenio viene eseguito in un thread separato, è necessario disabilitare i dispositivi transazionali o il thread selenio non avrà accesso ai dati creati nel database. Vedi https://github.com/jnicklas/capybara#using-capybara-with-testunit. Quella sezione ha queste note sulla disabilitazione di fixture transazionali.

+0

Ach! Ovviamente! Molte grazie, molto apprezzato. – PlankTon

Problemi correlati