Dav*_*ong 12 ruby rspec ruby-on-rails rspec-rails ruby-on-rails-3
我正在尝试为我的控制器编写测试,以接收来自外部服务的请求.到目前为止,这是我的测试:
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
Run Code Online (Sandbox Code Playgroud)
我的控制器现在看起来像这样:
class ApplyController < Application Controller
def indeed
binding.pry
end
end
Run Code Online (Sandbox Code Playgroud)
当我在测试中进入Pry并尝试检查request.headers['X-Indeed-Signature']我总是得到的价值nil
有什么东西我错过了吗?我正在使用Rails 3.2和Rspec 3
Joh*_*gle 21
我想你想要(直接来自你的一个链接)
it "returns 200 ok"
@request.headers['X-Indeed-Signature'] = signature
post :indeed, parameters
response.status.should == 200
end
Run Code Online (Sandbox Code Playgroud)
你不需要主题(:回应)
Dav*_*ong 10
我能够通过使用@request.env而不是@request.headers像这样修复它:
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=' }
it 'returns 200 ok if Request is valid' do
@request.env['X-Indeed-Signature'] = signature
post :indeed, parameters
expect(response.status).to eq 200
end
end
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9918 次 |
| 最近记录: |