Bonjour,
Je suis coincé depuis quelques jours dans le chapitre sur les tests (Ruby en Rails 2e éd., ou "AWDWR2").
> ruby ./test/functional/login_controller_test.rb
Loaded suite ./test/functional/login_controller_test
Started
Finished in 1.382436 seconds.
1) Error:
test_correct_login(LoginControllerTest):
TypeError: can't convert Hash into String
/home/foudil/src/ror/depot/vendor/rails/actionpack/lib/action_controller/assertions/response_assertions.rb:115:in `=~'
/home/foudil/src/ror/depot/vendor/rails/actionpack/lib/action_controller/assertions/response_assertions.rb:115:in `assert_redirected_to'
/home/foudil/src/ror/depot/vendor/rails/actionpack/lib/action_controller/assertions/response_assertions.rb:114:in `collect'
/home/foudil/src/ror/depot/vendor/rails/actionpack/lib/action_controller/assertions/response_assertions.rb:114:in `assert_redirected_to'
/home/foudil/src/ror/depot/vendor/rails/actionpack/lib/action_controller/assertions.rb:54:in `clean_backtrace'
/home/foudil/src/ror/depot/vendor/rails/actionpack/lib/action_controller/assertions/response_assertions.rb:54:in `assert_redirected_to'
./test/functional/login_controller_test.rb:25:in `test_correct_login'
/home/foudil/src/ror/depot/vendor/rails/activerecord/lib/../../activesupport/lib/active_support/testing/default.rb:7:in `run'
Voici mon fichier de test en question :
require File.dirname(__FILE__) + '/../test_helper'
class LoginControllerTest < ActionController::TestCase
def test_index
get :index
if User.count == 0
assert_redirected_to :action => "add_user"
assert_equal "Veuillez créer le premier utilisateur", flash[:notice]
else
assert_redirected_to :action => "login"
assert_equal "Veuillez vous connecter", flash[:notice]
end
end
def test_index_with_user
get :index, {}, { :user_id => users(:dave).id }
assert_response :success
assert_template "index"
end
def test_correct_login
dave = users(:dave)
post :login, :name => dave.name, :password => 'secret'
assert_redirected_to :action => "index"
assert_equal dave.id, session[:user_id]
end
def test_truth
assert true
end
end
Contrairement au msg d'erreur, je suspecte que le problème vient de l'instruction "post". Je me demande si c'est la bonne qui est appellée (il en existe 4 d'après la doc).
Je signale que :
- je sais qu'il est conseillé de suivre le livre en Rails 1.2
- le code complet de login_controller_test.rb contenu dans le livre produit la même erreur
Suis-je le seul à être allé jusqu'à ce chapitre en Rails 2.0 ?
|
il y a 5 jours 18 heures
il y a 1 semaine 5 jours
il y a 1 semaine 6 jours
il y a 1 semaine 6 jours
il y a 2 semaines 3 min
il y a 2 semaines 4 jours
il y a 2 semaines 5 jours
il y a 3 semaines 1 jour
il y a 3 semaines 5 jours
il y a 3 semaines 6 jours