我正在实施帐户设置功能,用户可以在其中修改其姓名,电子邮件地址,密码等。它基于具有update
方法的Devise注册功能。
我想使用RSpec和Capybara为此编写一个功能测试,但是用户需要提供他们当前的密码来更新帐户详细信息。这很困难,因为密码是加密的。
这是我到目前为止所做的,但显然它不起作用:
require 'rails_helper'
feature 'Updating account' do
scenario 'Updating name', :sidekiq_inline do
create :user
login_as User.first
visit edit_user_registration_path
fill_in 'Name', with: 'New name'
fill_in 'Current password', with: User.first.encrypted_password
click_button 'Save changes'
expect(current_path).to eq home_path
expect(page).to have_text 'Your account has been updated successfully.'
end
end
答案 0 :(得分:1)
假设您使用Factory-Girl(或同等产品)创建测试对象,您应该能够指定用于创建用户的密码
create :user, password: 'my_password'
然后在测试中重复使用
fill_in 'Current password', with: 'my_password'