我正在尝试为我的 Controller 编写测试,该 Controller 接收来自外部服务的请求。到目前为止,这是我的测试:
describe ApplyController do
context 'when valid' do
let(:parameters) do
file = File.join File.dirname(__FILE__), '..', 'samples', 'Indeed.json'
JSON.parse(File.read file)
end
let(:signature) { 'GC02UVj0d4bqa5peNFHdPQAZ2BI=' }
subject(:response) { post :indeed, parameters, 'X-Indeed-Signature' => signature }
it 'returns 200 ok if Request is valid' do
expect(response.status).to eq 200
end
end
end
这应该根据 documentation 工作我可以find .
我的 Controller 现在看起来像这样:
class ApplyController < Application Controller
def indeed
binding.pry
end
end
当我在测试中使用 Pry 并尝试检查 request.headers['X-Indeed-Signature']
的值时,我总是得到 nil
有什么我想念的吗?我正在使用 Rails 3.2 和 Rspec 3
最佳答案
我想你想要(直接从你的一个链接)
it "returns 200 ok"
@request.headers['X-Indeed-Signature'] = signature
post :indeed, parameters
response.status.should == 200
end
你不需要主题(:响应)
关于ruby-on-rails - 将 header 附加到 Rspec Controller 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20529917/