gpt4 book ai didi

ruby-on-rails - 功能测试 Authlogic?

转载 作者:数据小太阳 更新时间:2023-10-29 07:11:00 27 4
gpt4 key购买 nike

在我的一些 Controller 中,我有一个 before_filter 检查用户是否登录?用于 CRUD 操作。

application.rb

def logged_in?
unless current_user
redirect_to root_path
end
end

private
def current_user_session
return @current_user_session if defined?(@current_user_session)
@current_user_session = UserSession.find
end

def current_user
return @current_user if defined?(@current_user)
@current_user = current_user_session && current_user_session.record
end

但现在我的功能测试失败了,因为它重定向到 root。所以我需要一种方法来模拟已经创建了一个 session ,但我尝试过的任何方法都没有奏效。这是我现在拥有的,测试几乎忽略了它:

test_helper.rb

class ActionController::TestCase
setup :activate_authlogic
end

posts_controller_test.rb

class PostsControllerTest < ActionController::TestCase
setup do
UserSession.create(:username => "dmix", :password => "12345")
end

test "should get new" do
get :new
assert_response :success
end

我错过了什么吗?

最佳答案

你应该在 UserSession.create 中传递 ActiveRecord 对象

类似于:

u = users(:dmix)
UserSession.create(u)

关于ruby-on-rails - 功能测试 Authlogic?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/999177/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com