2011-01-13 17 views
7

Estoy empezando con RSpec y tengo algunas dificultades para escribir pruebas de controlador para recursos anidados. Intenté buscar en Google esto, pero sin mucha suerte.Novato Rspec: ejemplo rápido de prueba de controlador anidado?

¿Podría alguien ofrecer un ejemplo básico de una prueba de prueba "PUT update" que asegura que se actualice un recurso anidado? Sólo para elaborar, tengo el recurso equivalente (no anidada) probado como esto:

def mock_post(stubs={}) 
    @mock_post ||= mock_model(Post, stubs).as_null_object 
    end 
    ... 

    describe "PUT update" do 
     describe "with valid parameters" do 
     it "updates the requested post" do 
      Post.stub(:find).with("14") { mock_post } 
      mock_post.should_receive(:update_attributes).with({'these' => 'params'}) 
      put :update, :id => "14", :post => {'these' => 'params'} 
     end 
     end 
    end 

He estado tratando durante algún momento de extinguir correctamente una prueba similar para un modelo 'Comentario' que está anidada en post , pero no hay alegría Cualquier sugerencia apreciada.

Respuesta

12

Usted necesita tener ambos identificadores pasados ​​a su método put

put :update, :id => "14", :post_id=> "1", :comment => {'these' => 'params'} 
Cuestiones relacionadas