2016-11-22 2 views
1
  • rails 5.0.0.1
  • rspec 3,5

J'ai hérité d'une base de code. Je suis occupé à écrire des tests d'intégration pour attacher la fonctionnalité de l'application avant d'envisager le refactoring.Comment configurer la request.body pour une spécification de demande Rspec avec une requête GET

J'ai les lignes suivantes dans un contrôleur concernant before_action. Il semble lire le corps de la demande. La valeur json ici est utilisée pour extraire un identifiant utilisé pour authentifier la requête.

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

J'ai besoin de tester que l'authentification se passe correctement. Comment puis-je définir request.body pour une spécification de requête GET?

Répondre

1

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

@ 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 

ou tout simplement

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