2011-01-13 96 views
7

我刚刚开始使用RSpec,并为嵌套资源编写控制器测试时遇到了一些困难。我试过用google搜索这个,但没有多少运气。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方法

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