我按照RailsCasts插曲從頭開始做認證:http://railscasts.com/episodes/250-authentication-from-scratch-revised的Rails 3.2的集成測試登錄系統
現在我想用做集成測試內置的測試框架。
在我的數據庫中,我使用了email和password_digest等字段,因爲我使用的是has_secure_password。在我的夾具用戶我有
account_administrator:
email: [email protected]
password_digest: password
first_name: Bob
last_name: Jones
is_team_member: true
is_direct_manager: false
is_senior_leadership: false
is_reviewer: false
is_account_administrator: true
在我的集成測試我有
require 'test_helper'
class UserFlowsTest < ActionDispatch::IntegrationTest
fixtures :users
def login(user)
open_session do |s|
u = users(user)
s.https!
s.post "/sessions", email: u.email, password: "password"
assert_redirected_to root_url
end
end
test "logging in" do
login(:account_administrator)
end
end
我遇到的問題是,「註冊」試驗失敗,此錯誤:
1) Error:
test_logging_in(UserFlowsTest):
BCrypt::Errors::InvalidHash: invalid hash
我認爲這是因爲我在我的夾具中提供的「散列」不是真正的password_digest - 它只是字符串「password」。我怎樣才能解決這個問題,使我的測試工作?
這是一個安全問題,將電子郵件,密碼和密碼一起清除乾淨嗎?特別是如果它致力於公共代碼庫? – user1002119 2014-11-21 05:00:42