11
votes

RSPEC Response.Body est toujours vide même avec config.Render_Views

Dans mon fichier SPEC_HELPER.RB, je l'ai spécifiquement défini sur Config.Render_Views, mais la réponse. La carte que je récupère est toujours vide. Voici ma spécification de base

describe  "#index" do
    it "should list all rooms" do
      get 'index'
      stub(Person).all
    end

    it "responds with 200 response code" do
      response.should be_ok
    end

    it "renders the index template" do
      pp response.body
      response.should render_template("people/index")
    end

  end


0 commentaires

3 Réponses :


7
votes

Avez-vous essayé d'avoir rendu_views dans votre fichier de spécifications de contrôleur? Cela fonctionne pour moi.

Une autre chose que j'ai remarquée, c'est que vous n'accédez qu'une page d'index une fois dans vos cas de test - le premier à préciser. Le reste retournera le contenu HTML vide car il n'y a pas de réponse.

Voici comment je vais la mettre en œuvre. Mais si vous avez déjà config.render_views dans le fichier * SPEC_HELPER.RB * et cela fonctionne, vous pouvez passer sans le rendu_views dans la spécification du contrôleur. < Pré> xxx

éditer: Le changement subtil ici est le avant blobk dans lequel j'appelle obtenez: index pour chaque it bloc.


2 commentaires

Avez-vous corrigé votre code en incluant get: index dans chaque it bloc?


Vous avez certainement besoin de Obtenir: index dans chaque test, ou mieux, dans un avant car @YASKY a montré. Votre Stub ne fait également rien dans le test, il est intégré. Étampez après que le obtenir n'aura aucun effet. Vous ne retournez également rien du talon.



0
votes

Ceci a été modifié de RSPEC 1 à RSPEC 2. Voir les spécifications utilisez maintenant rendu au lieu de réponse :

rendu.should = ~ / Quelqu'un /

Plus d'informations dans le Notes de version sur Github .


1 commentaires

Je ne suis pas dans une vue de vue, c'est une spécification de contrôleur et les documents montrent toujours de traiter avec une réponse à cette mode.



3
votes

J'ai eu le même problème.

La solution consistait à spécifier le format de la demande.

Par exemple: Obtenir: Certains_Param: 12121, format: 'Json'


0 commentaires