2010-01-11 8 views
0

Quelqu'un sait comment obtenir assert_response pour travailler avec webrat en utilisant le sélénium? Je continue à obtenirassert_response ne fonctionne pas avec webrat en mode sélénium

NoMethodError: undefined method `response_code' for nil:NilClass 

Voici mon test:

def test_basic_page_load 
    visit root_path 
    click_link "register" 
    assert_response 200 
end 

est ici l'erreur:

==> Waiting for Selenium RC server on port 4444... Ready! 
==> Waiting for rails application server on port 3001... Ready! 
E 

    1) Error: 
test_basic_page_load(UserCrudTest): 
NoMethodError: undefined method `response_code' for nil:NilClass 
    /test/integration/user_crud_test.rb:11:in `test_basic_page_load' 

Finished in 12.269964 seconds. 

Je suis sûr que c'est quelque chose de stupide que je me manque, mais je ne juste » Je le vois ... Des idées?

Répondre

0

Hmmm, on dirait que ce n'est pas possible pour le moment. Le processus de test démarre une nouvelle instance de la ligne de commande (dans Webrat::Selenium::ApplicationServers::Rails) et n'a donc pas accès à la variable @controller qui serait définie par ActionController::Integration::Session.get. Cette variable @controller est utilisée par assert_response.

Je me demande combien de travail ce serait de démarrer un serveur mongrel en utilisant fork au lieu de system (en Webrat::Selenium::ApplicationServers::Rails.start). Il pourrait peut-être être combiné avec selenium.wait_for_page_to_load pour s'assurer que le test attende que le processus du serveur termine la réponse. Juste une idée, je ne l'examinerai probablement plus.

Pour toute personne qui utilise Webrat avec Shoulda, quelque chose comme cela fonctionne toujours:

setup do 
    fill_in :login, :with => Factory.next(:login) 
    fill_in :email, :with => Factory.next(:email) 
    fill_in "Password", :with => 'asdf' 
    fill_in "Password confirmation", :with => 'asdf' 
    click_button :Register 
    selenium.wait_for_page_to_load(10) 
end 
should_create :user 

Cheers, Brian

Questions connexes