【发布时间】:2014-07-10 17:02:33
【问题描述】:
在设计文档中,他们提供了有关在测试控制器时如何访问 current_user 的提示:
但是,在进行功能测试时呢?我正在尝试测试我的一个控制器的创建方法,并在该控制器中使用 current_user 变量。
问题在于 devise 中建议的宏使用了 @request 变量,而对于功能规范来说它是 nil。什么是解决方法?
编辑:
这就是我目前的规格:
feature 'As a user I manage the orders of the system' do
scenario 'User is logged in ad an admin' do
user = create(:user)
order = create(:order, user: user)
visit orders_path
#Expectations
end
end
问题是在我的OrdersController 中我有一个current_user.orders 调用,并且由于current_user 没有定义,它会将我重定向到/users/sign_in。
我在/spec/features/manage_orders.rb下定义了这个
【问题讨论】:
-
我用github.com/railsware/rack_session_access 来做类似的事情
-
可能包含您尝试编写的测试代码?你可以假装
current_user在那里,我认为这对澄清你的意图很有帮助。 -
我没有记录用户,因为我不知道如何在功能 rspec 测试中做到这一点。
标签: ruby-on-rails ruby rspec devise