0

認証が必要なため、POST リクエストを作成してヘッダーを送信する Rspec テストがあります。

it 'creates a client for an organization if none exists' do
  VCR.use_cassette('create_client') do
    post "/organizations/#{@organization.id}/clients", nil, { 'TOKEN' => @token }

    expect(last_response.status).to be(201)
    expect(json_response).to be_a(Hash)
    expect(json_response["organization_id"]).to eq(@organization.id)
    expect(json_response.keys).to include('auth_token')
   end
   expect(@organization.client).to_not be_nil
end

これは、ローカル マシンでテストを実行すると問題なく成功しますが、CI サーバー (この場合は Codeship) では失敗します。

Failure/Error: post "/organizations/#{@organization.id}/clients", nil, { 'TOKEN' => @token }
MyModule::MyClass::Errors::InvalidOptionError:
  bad URI(is not URI?):

ポスト リクエストからヘッダー部分を削除すると、トークン ヘッダーが必要なためテストは明らかに失敗しますが、ポスト リクエストはエラーなしで通過します。

なぜこれが起こっているのですか?ご意見をいただければ幸いです。

4

1 に答える 1