gpt4 book ai didi

ruby-on-rails - 与 Warden 一起进行功能测试?

转载 作者:行者123 更新时间:2023-12-01 06:46:36 24 4
gpt4 key购买 nike

我正在尝试进行功能测试,需要使用 Warden 登录。

我已经做好了:

class ActionController::TestCase
include Warden::Test::Helpers
end

我的测试用例很简单:
def test_access_admin_as_superuser
login_as(Person.make(:superuser))
get :index
assert_response :success
assert_nil flash[:warning]
end

我做一个 login_as(user)它似乎有效,除非我执行 get '/admin'它会失败:
1) Error:
test_access_admin_as_superuser(AdminControllerTest):
NoMethodError: undefined method `user' for nil:NilClass
/home/silas/.rubygems/gems/gems/rails_warden-0.5.2/lib/rails_warden/controller_mixin.rb:21:in `current_user'
app/controllers/application_controller.rb:100:in `require_user'
test/functional/admin_controller_test.rb:20:in `test_access_admin_as_superuser'

有任何想法吗?

最佳答案

Devise 有 helper 来处理这个问题,如果您只是使用 Warden,这将无济于事。事情中断的原因是 Action Controller 以不同的方式在测试环境中设置事情。我整理了一个小 gem,它提供了一个模块,您可以在测试模式下使用 rails 与warden 一起工作:github.com/ajsharp/warden-rspec-rails .

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

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