Salut Cedric,

J'aurai aussi un autre feedback, je te conseillerai d'utiliser un template
engine pour generer ton json que plutot creer une custom methode pour
generer ton json souhaite.

Cela va aussi te simplifier la vie pour ecrire tes tests

Quelque materials a lire si jamais tu es interesse:
- https://github.com/nesquena/rabl/wiki/Testing-with-rspec
-
http://blog.gomiso.com/2011/05/16/if-youre-using-to_json-youre-doing-it-wrong/

Nico.

2012/11/28 Cédric Bousmanne <[email protected]>

> Bonjour à tous,
>
> Je tente de tester une API json avec Rspec. Mais je me trouve face à un
> problème que je ne comprend pas.
>
> Voici mon controlleur :
>
> module Api
>   module V1
>     class AlbumsController < PrivateController
>       respond_to :json, :xml
>       def show
>         @album = current_family.albums.find(params[:id])
>         respond_with @album.as_json_with_pictures
>       end
>     end
>   end
> end
>
> Et mon album_controller_spec.rb
>
> require 'spec_helper'
>
> module Api
>   module V1
>     describe AlbumsController do
>       before (:each) do
>         @user = FactoryGirl.create(:parent)
>         @album = FactoryGirl.create(:album, creator_id: @user.id,
> family_id: @user.family_id)
>       end
>       it "should show a single album" do
>         get :show, :id => @album, :auth_token =>
> @user.authentication_token, :format => :json
>         response.should be_success
>         response.body.should == @album.as_json_with_pictures
>       end
>     end
>   end
> end
>
> Lorsque je lance mes tests, voici l'erreur que je reçois :
>
>   1) AlbumsController should show a single album
>      Failure/Error: get :show, :id => @album, :auth_token =>
> @user.authentication_token, :format => :json
>      ActionView::MissingTemplate:
>        Missing template albums/show, private/show, application/show with
> {:locale=>[:en, :fr], :formats=>[:json], :handlers=>[:erb, :builder, :arb,
> :coffee, :haml, :rabl]}. Searched in:
>          *
> "#<RSpec::Rails::ViewRendering::EmptyTemplatePathSetDecorator:0x007fe952c51d48>"
>      # ./spec/controllers/api/v1/albums_controller_spec.rb:24:in `block (2
> levels) in <module:V1>'
>
>
> Après avoir effectué quelques recherche, j'ai découvert que Rspec
> s'attendait à trouver une vue. Cependant, je n'utilise pas de vues
> puisqu'un appel JSON renvoie automatiquement le bon contenu.
>
> Quelqu'un a-t-il déjà fait face à ce problème?
>
> Merci d'avance
>
> Cédric
>
> --
> Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de
> Google Groups.
> Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse
> [email protected]
> Pour résilier votre abonnement envoyez un e-mail à l'adresse
> [email protected]
>

-- 
Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de 
Google Groups.
Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse 
[email protected]
Pour résilier votre abonnement envoyez un e-mail à l'adresse 
[email protected]

Répondre à