会话助手测试失败
session helpers test failure
来自 Michael Hartl 的书,我有以下会话助手测试:
require 'test_helper'
class SessionsHelperTest < ActionView::TestCase
def setup
@user = users(:michael)
remember(@user)
end
test "current_user returns right user when session is nil" do
assert_equal @user, current_user
assert is_logged_in?
end
test "current_user returns nil when remember digest is wrong" do
@user.update_attribute(:remember_digest, User.digest(User.new_token))
assert_nil current_user
end
end
我将当前用户定义如下
def current_user
if (user_id = session[:user_id])
@current_user ||= User.find_by(id: user_id)
elsif (user_id = cookies.signed[:user_id])
user = User.find_by(id: user_id)
if user && user.authenticated?(cookies[:remember_token])
log_in user
@current_user = user
end
end
end
然而,当运行这个测试时我得到以下错误:
SessionsHelperTest#test_current_user_returns_right_user_when_session_is_nil [/Users/Sites/sample_app/sample_app/test/helpers/sessions_helper_test.rb:11]:
--- expected
+++ actual
@@ -1 +1 @@
-#<User id: 762146111, name: "Michael Example", email: "michael@example.com", created_at: "2015-09-08 22:46:47", updated_at: "2015-09-08 22:46:48", password_digest: "a$NCAY0E57aRYQgbjBrSEHZusy5MadB2eMHo5SEr1rw7n...", remember_digest: "a$CeGDjrj0haJ36jeIvi5.X.FqNzEVsrIkoPaxUs/ShAW...">
+nil
知道如何解决这个问题吗?
我遇到了同样的问题。我的问题是我操纵了一些助手、用户模型和会话控制器。如果您仔细检查,它也可能会解决您的问题。
来自 Michael Hartl 的书,我有以下会话助手测试:
require 'test_helper'
class SessionsHelperTest < ActionView::TestCase
def setup
@user = users(:michael)
remember(@user)
end
test "current_user returns right user when session is nil" do
assert_equal @user, current_user
assert is_logged_in?
end
test "current_user returns nil when remember digest is wrong" do
@user.update_attribute(:remember_digest, User.digest(User.new_token))
assert_nil current_user
end
end
我将当前用户定义如下
def current_user
if (user_id = session[:user_id])
@current_user ||= User.find_by(id: user_id)
elsif (user_id = cookies.signed[:user_id])
user = User.find_by(id: user_id)
if user && user.authenticated?(cookies[:remember_token])
log_in user
@current_user = user
end
end
end
然而,当运行这个测试时我得到以下错误:
SessionsHelperTest#test_current_user_returns_right_user_when_session_is_nil [/Users/Sites/sample_app/sample_app/test/helpers/sessions_helper_test.rb:11]:
--- expected
+++ actual
@@ -1 +1 @@
-#<User id: 762146111, name: "Michael Example", email: "michael@example.com", created_at: "2015-09-08 22:46:47", updated_at: "2015-09-08 22:46:48", password_digest: "a$NCAY0E57aRYQgbjBrSEHZusy5MadB2eMHo5SEr1rw7n...", remember_digest: "a$CeGDjrj0haJ36jeIvi5.X.FqNzEVsrIkoPaxUs/ShAW...">
+nil
知道如何解决这个问题吗?
我遇到了同样的问题。我的问题是我操纵了一些助手、用户模型和会话控制器。如果您仔细检查,它也可能会解决您的问题。