Używam narzędzi RSpec, Spork, Capybara i Capybara Mechanic do pisania testów integracji dla ścieżki rejestracji, która korzysta z połączenia Facebook. Poprawnie porusza się po rejestracji, ale nowi użytkownicy są tworzeni w mojej bazie danych programowania zamiast w bazie testowej.Jak korzystać z testowej bazy danych w Capybara?
Program RSpec jest skonfigurowany do korzystania ze środowiska testowego i potwierdziłem, że wszystkie metody modeli, które uruchamiam w mojej specyfikacji, trafiły do testowej bazy danych, ale wszystkie działania interfejsu użytkownika zostały uruchomione.
Oto moja próba:
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
Po tym teście mogę patrzeć na mojej bazy rozwoju i nowy użytkownik został tam utworzony.
Próbowałem również skonfigurować database_cleaner, a także nie pomogło.
Ktoś wie, co muszę zrobić, aby kapibara trafiła do testowej bazy danych?
szyny 3.1.3
rspec 2.7.0
Spork 0.9.0
kapibary 1.1.0
kapibary-mechanize 0.3.0.rc3
Czy rozwiązałeś ten problem sam? Mam podobny problem w aplikacji, nad którą pracuję. Próbuję zalogować się z rekordem w teście, ale mówi, że rekord nie istnieje. Tak więc myślałem, że jest to związane z używaniem środowiska dev, ale dodanie rekordu do dev mówi, że on też nie istnieje. Nie jestem więc pewien, czy Capybara używa zupełnie innej bazy danych/środowiska niż środowisko testowe rspecs. – JDutil
Zobacz moją odpowiedź na poprawkę. W jaki sposób tworzysz swoich użytkowników? Używam FactoryGirl, która wstawia do testowej bazy danych. – Chris
Używam również FactoryGirl. Rekordy są tworzone w bazie testowej zgodnie z przeznaczeniem. Kiedy zmieniam sterownik na Selenium lub Webkit i przeglądarka musi wchodzić w interakcje z rekordami, których nie zwróci ... Próbowałem ustawić ustawienia serwera tak jak odpowiedź, ponieważ myślałem, że moja konfiguracja POW spowodowała uruchomienie w trybie deweloperskim w przeglądarce, ale tak nie jest. – JDutil