Utilizzo RSpec, Spork, Capybara e Capybara Mechanic per scrivere test di integrazione per un percorso di registrazione che utilizza la connessione Facebook. Naviga correttamente attraverso la registrazione, ma i nuovi utenti vengono creati nel mio database di sviluppo anziché nel database di test.Come utilizzare il database di test con Capybara?
RSpec è configurato per utilizzare l'ambiente di test e ho confermato che tutti i metodi di modello che eseguo nelle mie specifiche colpiscono tutti il database di test, ma tutte le azioni dell'interfaccia utente hanno raggiunto lo sviluppo.
Ecco la mia prova:
it "go through registration path" do
print "RAILS_ENV: #{Rails.env}\n" # correctly prints 'test'
print "1) #{User.count}\n" # correctly shows the user count in my test database (zero)
Capybara.current_driver = :mechanize
visit root_path
click_link "register"
# Fill in Facebook Connect form
fill_in 'email', :with => "[email protected]"
fill_in 'pass', :with => "password"
click_button "Log In"
print "2) #{User.count}\n" # still shows zero users in the test database
end
Dopo quel test posso guardare la mia database di sviluppo e il nuovo utente è stato creato lì.
Ho provato anche a configurare database_cleaner e questo non ha aiutato.
Qualcuno sa cosa devo fare in modo che capibara raggiunga il database di test?
rotaie 3.1.3
rspec 2.7.0
spork 0.9.0
capibara 1.1.0
capibara-meccanizzare 0.3.0.rc3
Hai finito per risolvere questo problema per te? Sto riscontrando un problema simile in un'app a cui sto lavorando. Sto provando ad accedere con un record nel test ma sta dicendo che il record non esiste. Quindi pensavo che fosse correlato all'utilizzo dell'ambiente di sviluppo, ma aggiungere il record a dev è come dire che non esiste neanche. Quindi non sono sicuro se Capybara stia utilizzando un diverso database/ambiente interamente rispetto all'ambiente di test rspecs. – JDutil
Vedere la mia risposta per la correzione. Come stai creando i tuoi utenti? Sto usando FactoryGirl che si inserisce nel database di test. – Chris
Uso anche FactoryGirl. I record vengono creati all'interno del database di test come previsto. Quando cambio il driver in Selenium o Webkit e il browser deve interagire con i record non vengono restituiti però ... Ho provato a impostare le impostazioni del server come la tua risposta anche dal momento che stavo pensando che la mia configurazione POW stava causando l'esecuzione in modalità dev nel browser, ma non è questo il caso. – JDutil