2011-01-13 30 views
7

Tôi chỉ mới bắt đầu với RSpec và gặp một chút khó khăn khi viết bài kiểm tra bộ điều khiển cho tài nguyên lồng nhau. Tôi đã thử googling này, nhưng không có nhiều may mắn.Rspec newbie: Ví dụ nhanh về kiểm tra bộ điều khiển lồng nhau?

Ai đó có thể cung cấp ví dụ cơ bản về kiểm tra kiểm tra "cập nhật PUT" đảm bảo tài nguyên lồng nhau được cập nhật? Chỉ cần để xây dựng, tôi có tương đương (không lồng nhau) nguồn thử nghiệm như thế này:

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 

Tôi đã cố gắng cho một số thời gian để còn sơ khai một cách chính xác một thử nghiệm tương tự cho một mô hình 'Comment' mà được gom lại dưới bài viết , nhưng không có niềm vui. Mọi đề xuất đều được đánh giá cao.

Trả lời

12

Bạn sẽ cần phải có cả hai id truyền cho phương pháp đặt của bạn

put :update, :id => "14", :post_id=> "1", :comment => {'these' => 'params'} 
Các vấn đề liên quan