2016-11-22 5 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을 어떻게 설정합니까?

답변

1

https://relishapp.com/rspec/rspec-rails/docs/request-specs/request-spec

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 

하거나

post "/widgets", params: '{ "widget": { "name":"My Widget" } }'