2011-01-13 23 views
7

Sadece RSpec ile başlıyorum ve yuvalanmış kaynaklar için denetleyici testleri yazma konusunda biraz zorluk yaşıyorum. Bunu denemeye çalıştım ama çok şanssız.Rspec newbie: İç içe geçmiş kontrolör testinin hızlı bir örneği mi?

Birisi "PUT güncelleştirmesi" sınama sınamasının temel bir örneğini sunabilir mi? İç içe geçmiş bir kaynak güncelleştirildi mi?

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 

Ben doğru yayınla altında yuvalanmış bir 'Yorum' modeli için de benzer bir test saplama için bir süredir çalışıyor ettik: Sadece ayrıntılı için, böyle test eşdeğer (olmayan iç içe) kaynak var ama neşe yok. Herhangi bir öneri takdir edildi.

cevap

12

Sen koymak yönteme geçirilen her iki kimliklerini olması gerekir

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