我可以在rspec get / post上做一个“before hook”吗?

时间:2014-08-01 14:24:34

标签: ruby-on-rails ruby rspec rspec-rails

我正在尝试为每个请求都需要hmac签名的API编写测试。

describe Api::V2::HmacController, :type => :controller do
  render_views

  it 'GET' do
    get :index, timestamp: Time.now.to_i, format: :json
    expect(response.status).to eq(200)
  end

end

我想添加

request.env['x-api-key'] = API_KEY
request.env['x-api-hmac'] = "Encode"(API_SECRET, "parameters of the request")

每个请求。

我愿意接受任何类型的解决方案。

问题:如何在请求形成后楔入一个钩子,但是还没有发送?

我正在考虑覆盖rspec get / post方法,但我不确定如何。

1 个答案:

答案 0 :(得分:1)

您可以在块

中执行此操作

request.headers['x-api-key'] = API_KEY

您不应该通过env。

设置对请求标头的访问权限

请参阅here