2011-01-13 14 views
7

RSpecから始めて、ネストされたリソースのコントローラテストを書くのに少し難しかったです。私はこれをグーグルで試してみましたが、大したことはありません。Rspec初心者:ネストされたコントローラテストの簡単な例?

誰かが「PUT更新」テストのテストの基本的な例を提供して、ネストされたリソースを確実に更新できますか?

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 

私が正しくポストの下にネストされた「コメント」モデルのために同様のテストをスタブにいくつかの時間のためにしようとしてきた:ちょうど手の込んだ、私はこのようなテストと同等(非ネストされた)リソースを持っていますしかし、喜びはありません。任意の提案が高く評価されました。

答えて

12

あなたのputメソッドに渡された両方のIDを持っている必要があります

put :update, :id => "14", :post_id=> "1", :comment => {'these' => 'params'} 
関連する問題