2016-11-22 30 views
1
  • レール
  • 5.0.0.1私は、コードベースを継承している3.5

RSpecの。私は、リファクタリングを検討する前に、アプリケーションの機能を結びつけるための統合テストを書いています。GETリクエストでRSpecの要求仕様のためrequest.bodyを設定する方法

コントローラーの懸念事項before_actionに次の行があります。それは要求の本文を読むようです。ここではjsonの値を使用して、要求の認証に使用される識別子を抽出します。

request.body.rewind 
body = request.body.read 
json = JSON.parse(body) unless body.empty? 

認証が正しく行われることをテストする必要があります。 GET要求仕様にrequest.bodyを設定するにはどうすればよいですか?

答えて

0

私はあなたが要求ENV RAW_POST_DATA

get root_path, {}, 'RAW_POST_DATA' => 'raw json string' 
request.raw_post # "raw json string" 

参照を経由してこれを行うことができるはずだと思う:rails_post_5

require "rails_helper" 

RSpec.describe "Widget management", :type => :request do 

    it "creates a Widget and redirects to the Widget's page" do 
    headers = { "CONTENT_TYPE" => "application/json" } 
    post "/widgets", :params => '{ "widget": { "name":"My Widget" } }', :headers => headers 
    expect(response).to redirect_to(assigns(:widget)) 
    end 

end 

またはちょうど@ How to send raw post data in a Rails functional test?

関連する問題