【发布时间】:2018-08-10 23:06:26
【问题描述】:
我正在运行 Rails 5 JSON API 服务器。我编写了一些控制器规范,但我注意到它们需要很长时间才能运行,我正在寻找一种优化方法。
我读过的一种方法是通过在 before(:all) 或 before(:context) 块中进行 GET/POST 请求来减少网络请求的数量,然后让后续的 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
有没有办法在 before(:context) 块内设置请求标头?
【问题讨论】:
标签: ruby-on-rails rspec ruby-on-rails-5