Ich versuche, Tests für einen Controller von mir zu schreiben, der Anfragen von externen Diensten aufnimmt. Bisher ist dies mein Test:Header an Rspec-Controller-Tests anfügen
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
Dies sollte die documentation nach arbeite ich find konnte.
Mein Controller jetzt etwa wie folgt aussieht:
class ApplyController < Application Controller
def indeed
binding.pry
end
end
Als ich in Pry in meinem Test bekommen und versuchen, den Wert von request.headers['X-Indeed-Signature']
zu überprüfen, bekomme ich immer nur nil
Gibt es etwas, das ich vermisse ich? Ich bin mit Rails 3.2 und Rspec 3
Es stellt sich heraus, dass ich tatsächlich '@ request.env ['X-Indeven-Signature']' anstelle von '@ request.headers' verwenden musste –
Es sieht für mich aus, als ob Sie' @ request.env' in Rails brauchen 3 und '@ request.headers' in Rails 4. –