我正在运行Rails 5 JSON API服务器。我已经写了一些控制器规格,但是我注意到它们要花很长时间才能运行,并且我正在寻找一种优化方法。
我所了解的一种方法是通过实质上在before(:all)
或before(:context)
块中进行GET / POST请求,然后再添加随后的{{1} }语句测试来自单个网络请求的响应。
我遇到的一个问题是在我的it
块中,我似乎无权修改请求标头。例如,当前它的代码如下:
before(:context)
before(:each) do
add_authorization_header
get :index
end
如下:
add_authorization_header
但是当我碰到request.headers['Authorization'] =
"Token token=#{some_authorization_token)}"
到before(:each)
时,出现以下错误:
before(:context)
是否可以在NoMethodError: undefined method `headers' for nil:NilClass
块中设置请求标头?
答案 0 :(得分:1)
我认为您无权访问示例组内的请求对象。试试:
before(:context)
headers = { "Authorization" => "Token token=#{some_authorization_token)}" }
get :index, params: {}, headers: headers
end