7

私は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

私はしばらくの間、Postの下にネストされている「コメント」モデルの同様のテストを正しくスタブしようと試みてきましたが、喜びはありません。任意の提案をいただければ幸いです。

4

1 に答える 1

12

putメソッドに両方のIDを渡す必要があります

put :update, :id => "14", :post_id=> "1", :comment => {'these' => 'params'}
于 2011-01-13T16:56:18.980 に答える