Estoy tratando de probar algo muy simple con Rsec en mi aplicación Rails.Rieles usando Rspec para probar ---> ActionView :: MissingTemplate:
Esta es la pieza de prueba de código en spec/controladores/movies_controller_spec.rb
describe MoviesController do
describe 'update' do
it 'should call the model method to look up the movie to update' do
Movie.should_receive(:find).with("3")
put :update, {:id => "3"}
end
end
Este es el método controlador de los controladores/movies_controller.rb:
def update
Movie.find(params[:id])
end
Y consigo este problema :
1) MoviesController update should call the model method to look up the movie to update Failure/Error: post :update, {:id => "3"} ActionView::MissingTemplate: Missing template movies/update, application/update with {:handlers=>[:erb, :builder, :coffee, :haml], :formats=>[:html], :locale=>[:en, :en]}. Searched in: * "#<RSpec::Rails::ViewRendering::EmptyTemplatePathSetDecorator:0xa65b300>" # ./spec/controllers/movies_controller_spec.rb:8:in `block (3 levels) in <top (required)>'
Mis rutas se parecen:
movies GET /movies(.:format) {:action=>"index", :controller=>"movies"}
POST /movies(.:format) {:action=>"create", :controller=>"movies"}
new_movie GET /movies/new(.:format) {:action=>"new", :controller=>"movies"}
edit_movie GET /movies/:id/edit(.:format) {:action=>"edit", :controller=>"movies"}
movie GET /movies/:id(.:format) {:action=>"show", :controller=>"movies"}
PUT /movies/:id(.:format) {:action=>"update", :controller=>"movies"}
DELETE /movies/:id(.:format) {:action=>"destroy", :controller=>"movies"}
¿Alguien podría por favor ayudarme y decirme qué demonios estoy haciendo mal en un ejemplo tan simple?
Trate de poner en un movie_path redirect_to al final de la actualización por lo que no trata de buscar películas/actualizar – Bijan
Tienes un problema similar en uno proyecto, la peor parte es que no aparece cuando se llama a rspec en un solo archivo de especificaciones. –