2017-01-10 22 views
0

我正在實施一個賬戶設置功能,用戶可以在其中編輯他們的姓名,電子郵件地址,密碼等。它基於Devise的註冊功能,該功能具有update方法。如何在需要當前密碼的情況下使用水豚測試更新賬戶信息?

我想寫一個使用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 

回答

1

假設你正在使用工廠女孩(或同等學歷),用於創建您的測試對象,你應該能夠指定該密碼用於創建用戶

create :user, password: 'my_password' 

再後來重用測試

fill_in 'Current password', with: 'my_password' 
+0

嗯,是的。 D'哦。謝謝。 –

相關問題