【发布时间】:2013-10-09 09:55:04
【问题描述】:
在我的一些控制器中,我需要使用属于我的登录用户 (current_user.groups) 的组。当我尝试测试时;我似乎没有这个current_user:
ActionView::Template::Error: undefined method `authenticate' for nil:NilClass
所以我想我应该用 Devise 创建那个 current_user。
我已阅读 Devise 的文档,说明我应该将以下内容添加到我的 test_helper.rb:
class ActionController::TestCase
include Devise::TestHelpers
def setup
@request.env["devise.mapping"] = Devise.mappings[:user]
sign_in FactoryGirl.create(:user)
end
end
不过,这似乎并不奏效;每当我运行rake test 时,都会出现以下错误:
1) Error:
ActivitiesControllerTest#test_should_create_activity:
NameError: uninitialized constant ActionController::TestCase::FactoryGirl
test/test_helper.rb:22:in `setup'
【问题讨论】:
-
您的 Gemfile 的测试组中是否包含 factory_girl_rails gem?
-
我以为它是随 Devise gem 一起提供的。因为整个登录/注册的事情在我的应用程序中就像一个魅力。
-
那我为什么不需要它才能正常登录?
标签: ruby-on-rails ruby devise ruby-on-rails-4 factory-bot