Après avoir terminé la liste Listing 10.40 et en cours d'exécution /spec/controllers/users_controller_spec.rb rspec, je suis 1 échec de la section (tous les autres tests dans la section 'détruire' sont passés)Ruby on Rails section Tutoriel 10.4.2 échec du test
describe "DELETE 'destroy'" do
before(:each) do
@user = Factory(:user)
end
describe "as a non-signed-in user" do
it "should deny access" do
delete :destroy, :id => @user
response.should redirect_to(signin_path)
end
end
end
est ici la sortie de la console:
Failures:
1) UsersController DELETE 'destroy' as a non-signed-in user should deny access
Failure/Error: delete :destroy, :id => @user
undefined method `admin?' for nil:NilClass
# ./app/controllers/users_controller.rb:66:in `admin_user'
# ./spec/controllers/users_controller_spec.rb:282:in `block (4 levels) in <top (required)>'
je ne peux pas savoir s'il y a une erreur dans le code du tutoriel ou je fait une erreur quelque part.
Pouvez-vous s'il vous plaît préciser où exactement je le remplacer, ce contrôleur, modèle ...? Si je commente ce test, tout le reste est vert. –
Essayez la solution modifiée. Espérons que cela l'efface? –
Oui, je comprends le principe TDD, j'ai juste omis toutes les autres sections de spécification dans ma question, désolé si cela vous a rendu confus. J'ai ajouté le contrôle 'current_user' et maintenant cette partie semble fonctionner. Mais j'ai une autre erreur dans la ligne 'response.should redirect_to (signin_path)'. Pour une raison quelconque, il y a en fait une redirection vers 'root_path' et la dernière ligne de la méthode' destroy' du contrôleur 'user' est' redirect_to users_path'. J'ai dû louper quelque chose. –