2 votes

Rspec ne recharge pas l'attribut de mot de passe modifié - pourquoi ?

J'utilise Rails 3.2.1 et rails-rspec 2.8.1....Lorsque j'exécute le test de réinitialisation du mot de passe d'un utilisateur, il semble que le rechargement de l'objet utilisateur ne charge pas l'attribut du nouveau mot de passe.....

Voici le code de mon test :

 describe "Reset password page" do
    let(:teacher) { FactoryGirl.create(:teacher, :email=>"jane@gmail.com")}
    let(:old_password) { teacher.password }
    before do
      visit reset_password_form_path
      fill_in "Email", with: teacher.email
      click_button "Reset Password"
    end
    it { should have_content('Your new password has been emailed to the address you provided.')}
    specify { Teacher.find_by_email("jane@gmail.com").password.should_not == old_password }
    ## specify { teacher.reload.password.should_not == old_password }  ##THIS FAILS
  end

spécifier { teacher.reload.password.should_not == old_password } ÉCHEC mais specify { Teacher.find_by_email("jane@gmail.com").password.should_not == old_password } PASSES

Cela me dit que le mot de passe est correctement sauvegardé, mais qu'il n'est pas rechargé...une idée de la raison ? J'utilise la méthode Rails 3.2.x "has_secure_password" pour déployer les fonctionnalités de login/mot de passe. Cela signifie qu'un password_digest est enregistré dans la base de données, et que le mot de passe est un attribut virtuel (je pense).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X