2017-09-07 4 views
1

Je ne l'ai jamais été sûr de ce que la différence entre ces options sontQu'est-ce que la spécification du type dans un RSpec affecte réellement?

RSpec.describe V2::DirectMessagesController, type: :controller 

vs

RSpec.describe V2::DirectMessagesController, type: :request 

Ou où chercher même de le comprendre

+1

un coup d'oeil à [cette] (https://everydayrails.com/2016/08/29/replace-rspec-controller-tests.html) de blog . –

Répondre

0

spécifications de demande fournissent une enveloppe mince autour de Rails 'tests d'intégration, et sont conçus pour conduire le comportement à travers la pile complète, y compris le routage (fourni par Rails) et sans talonnage (c'est à vous de décider).

Une spécification de contrôleur est une enveloppe RSpec pour un test fonctionnel Rails (ActionController::TestCase::Behavior). Il vous permet de simuler une seule requête http dans chaque exemple, puis préciser les résultats attendus tels que:

  • modèles rendus
  • réoriente
  • variables d'instance assignées dans le contrôleur à partager avec le Voir
  • cookies envoyés en arrière avec la réponse

Controller s pec docs: https://relishapp.com/rspec/rspec-rails/docs/controller-specs

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