Rspec测试如下:
RSpec.describe Api::UsersController, type: :controller do
describe 'POST #create' do
subject { post :create, params: create_params }
context '...' do
在控制器中,我使用:
cookies.permanent[:foo] == 'bar'
但是,我得到了:
NameError:
undefined local variable or method `cookies' for #<Api::UsersController:0x000000137702f0>
另一个SO问题的答案是将type: :request
添加到describe
,但这会导致其他错误。我宁愿只将cookies
存根,所以cookies.permanent[:foo] == 'bar'
总是错误的。我该怎么办?
答案 0 :(得分:0)
默认情况下,rails-api中的控制器不包括用于处理cookie的中间件。如果您需要Cookie,则需要添加该中间件:
config.middleware.use ActionDispatch::Cookies
对于上述问题,您需要包括
ActionController::Cookies
在您的规格文件中