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]

Répondre à