2009-10-14 4 views
0

J'essaie de créer un test de connexion simple, mais je ne peux pas passer le follow_redirect. il est dit: TypeError: impossible de convertir Symbol en String lorsqu'il rencontre le 'follow_redirect'. Cela a-t-il quelque chose à voir avec le fait que nous utilisons https pour le processus de connexion? Je veux simplement affirmer que l'utilisateur est capable de se connecter, et est redirigé vers un autre contrôleur basé sur le type d'utilisateur, mais ne peut pas passer la première redirection.test du processus de connexion de l'utilisateur dans les rails

En réponse au commentaire de demander l'erreur, voici la partie pertinente:

Le code est:

19 def test_login 
20  params = {:email => 'normaluser.com', :password => 'password'} 
21  post :login, params 
22  puts "#{@response.inspect}" 
23  assert_response :redirect 
24  #assert_redirected_to '/user/login?email=normaluser.com&password=password' 
25  follow_redirect 
26  assert_response :success 

L'erreur que je reçois est:

TypeError: can't convert Symbol into String 
/usr/lib/ruby/gems/1.8/gems/actionpack-2.1.2/lib/action_controller/test_process.rb:413:in `delete' 
/usr/lib/ruby/gems/1.8/gems/actionpack-2.1.2/lib/action_controller/test_process.rb:413:in `follow_redirect_without_deprecation' 
/usr/lib/ruby/gems/1.8/gems/activesupport-2.1.2/lib/active_support/deprecation.rb:94:in `send' 
/usr/lib/ruby/gems/1.8/gems/activesupport-2.1.2/lib/active_support/deprecation.rb:94:in `follow_redirect' 
user_controller_test.rb:25:in `test_login' 
/usr/lib/ruby/gems/1.8/gems/activesupport-2.1.2/lib/active_support/testing/setup_and_teardown.rb:33:in `__send__' 
/usr/lib/ruby/gems/1.8/gems/activesupport-2.1.2/lib/active_support/testing/setup_and_teardown.rb:33:in `run' 
+0

Pourriez-vous partager le message d'erreur? – Lichtamberg

+0

partagé le message d'erreur – umar

Répondre

0

Je suis pas en faveur de tester l'interaction utilisation comme ça. C'est trop artificiel. Pour tester les connexions et autres interactions utilisateur, j'utilise et recommande fortement l'utilisation de Cucumber. Cela vous permet de remplir le formulaire de connexion et de "voir" la réponse de votre application. De cette façon, vous testez non seulement vos contrôleurs, mais toute votre pile d'applications. L'avantage de cela est que lorsque vous introduisez un bug n'importe où dans votre application, vous le remarquerez dans vos tests de concombre.

Ma recommandation est la suivante: utilisez du concombre pour toute votre pile et rspec pour tester vos modèles à fond.

+0

vous pouvez avoir raison, et je vais explorer les tests de concombre, mais je veux actuellement savoir pourquoi je reçois des messages d'erreur dans un simple 4 lignes. fondamentalement je ne m'attendais pas à une redirection vers soi, mais je l'obtiens, et puis quand j'essaie de suivre la redirection, j'obtiens une erreur, donc je ne sais pas ce que je dois faire pour que ça marche. est-ce que https a quelque chose à voir avec ça, ou follow_redirect ne fonctionne plus dans les rails 2.1.2? – umar

0

Utilisez ces liens. Ils peuvent vous aider à identifier la manière exacte de tester la connexion. Link1, Link 2, Link 3

Questions connexes