2011-01-13 20 views
7

Ho appena iniziato con RSpec e ho un po 'di difficoltà a scrivere i test del controller per le risorse nidificate. Ho provato a cercarlo su google, ma senza molta fortuna.Rspec newbie: esempio rapido di test del controller annidato?

Qualcuno potrebbe offrire un esempio di base di un test di "aggiornamento PUT" per garantire che una risorsa nidificata venga aggiornata? Proprio per elaborare, ho la (non annidata) risorsa equivalente testato in questo modo:

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 

Ho cercato per qualche tempo a stub correttamente un test simile per un modello di 'commento', che è nidificato sotto Messaggio , ma nessuna gioia. Ogni suggerimento è apprezzato.

risposta

12

Avrete bisogno di avere entrambe le id passati al metodo put

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