Per ragioni al di fuori del mio controllo, non posso usare RSpec per testare il mio progetto attuale. Sto provando a testare Devise Reset Password, e non riesco a trovare qualcosa che funzioni.Rails 4 + Devise: come scrivere un test per Devise Reset Password senza RSpec?
Ecco quello che ho finora:
require 'test_helper'
class ResetPasswordTest < ActionDispatch::IntegrationTest
setup do
@user = users(:example)
end
test "reset user's password" do
old_password = @user.encrypted_password
puts @user.inspect
# This assertion works
assert_difference('ActionMailer::Base.deliveries.count', 1) do
post user_password_path, user: {email: @user.email}
end
# puts @user.reset_password_token => nil
# Not sure why this doesn't assign a reset password token to @user
patch "https://stackoverflow.com/users/password", user: {
reset_password_token: @user.reset_password_token,
password: "new-password",
password_confirmation: "new-password",
}
# I get a success here, but I'm not sure why, since reset password token is nil.
assert_response :success
# This assertion doesn't work.
assert_not_equal(@user.encrypted_password, old_password)
end
end
ho aggiunto alcuni commenti di cui sopra al punto in cui le cose non sembrano funzionare. Qualcuno ha un'idea o un'idea su come meglio testare questo?
Come si esegue questo test? e in quale directory si posiziona il file di test? –
@MinaZaki Ho inserito questo test in '/ test/integration /' e funziona con la normale suite di test con 'rake test'. – justindao
... o eseguendo 'rake test: integration' – cseelus