2016-08-08 8 views
0

Je travaille sur l'écriture des cas de test en utilisant (RSpec et Capybara).capybara et RSpec: réponse ajax ne fonctionne pas

capybara (2.7.1) and 
rspec (3.4.0) 
rspec-core (3.4.4) 
rspec-expectations (3.4.0) 
rspec-mocks (3.4.1) 
rspec-rails (3.4.2) 
rspec-support (3.4.1) 

Il y a beaucoup de réponses disponibles mais pas de chance !!! Ce sont le résultat que j'ai trouvé: 1, 2 et 3

capybara.rb

Capybara.asset_host = 'http://localhost:3000' 
Capybara.default_max_wait_time = 5 

session_helpers.rb

module Features 
    module SessionHelpers 
    def sign_up_with(email, password, confirmation) 
     visit new_user_registration_path 
     fill_in 'Email', with: email 
     fill_in 'Password', with: password 
     fill_in 'Password confirmation', :with => confirmation 
     click_button 'Sign up' 
    end 

    def signin(email, password) 
     visit root_url 
     find(:xpath, "//a[@class='login_box_btn']").click 
     fill_in 'login_user_email', with: email 
     fill_in 'login_user_password', with: password 
     click_button "LOGIN" 
    end 
    end 
end 

caractéristiques/utilisateurs/sign_in_spec.rb

feature 'Sign-In and Sign-Out', :devise do scenario 'user cannot sign in if not registered' do 
    signin('[email protected]', 'please123') 
    expect(page.find(:xpath, "//div[@id='login_message']")).to have_content("Email not found. Please provide a valid email.") 
end 

En attendant

find(:xpath, "//div[@id='login_message']") => "" 

Mais il ne doit pas être vide.

Comme je suis RailsApps/rails-devise pour faire les choses toutes les configurations sont selon ce repo.

S'il vous plaît faire un commentaire si quelqu'un a besoin de plus d'informations à ce sujet.

+0

Après 'visite root_url', mis' save_and_open_page' pour voir ce qui est sur la page. –

Répondre

0

essayer d'ajouter js: true au scénario, comme:

scenario 'user cannot sign in if not registered', js: true do 
+0

Sobchuk Il suffit d'ouvrir un navigateur et c'est tout. – VKatz