Pergunta

Eu tenho uma especificação application_controller que está falhando desde que eu removido o controlador / route ação routes.rb. Eu recebo o seguinte erro:

No route matches {:controller=>"application", :action=>"index"}

Eu tive muitos testes falham da mesma forma, mas foi capaz de corrigi-los, incluindo os parâmetros corretos na chamada get. Assim, por exemplo, se eu quisesse obter o route show padrão para mensagens no meu spec, eu tive que mudar

get :show to get :show, :id => '1'

Infelizmente, eu não tenho certeza agora que passar ao longo das especificações do controlador de aplicação. Eu incluí meu teste abaixo.

describe ApplicationController do

  it "should find the latest published posts and assign them for the view" do
    Post.should_receive(:latest).and_return(@posts)
    get :index
    assigns[:posts].should == @posts
  end


  it "should find the latest approved comments and assign them for the view" do
    Comment.should_receive(:latest).and_return(@comments)
    get :index
    assigns[:comments].should == @comments
  end

end
Foi útil?

Solução

Considere o ApplicationController como uma classe abstrata não se destina a ser utilizado para solicitações. Todos os novos controladores gerado irá herdar de ApplicationController por isso é um bom lugar para colocar o comportamento compartilhado.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top