Peux tu essayer de mettre render json: @album.as_json_with_pictures au lieu respond_with?
Le 28 novembre 2012 09:42, Cédric Bousmanne <[email protected]> a écrit : > 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]
