2011-01-13 3 views
7

Я только начинаю с RSpec и с трудом записываю тесты контроллера для вложенных ресурсов. Я пробовал это, но без большой удачи.Rspec новичок: быстрый пример теста вложенного контроллера?

Может ли кто-нибудь предложить базовый пример тестового теста «PUT update», обеспечивающий обновление вложенного ресурса? Просто разработать, я имею эквивалент (не вложенный) ресурс испытанный как это:

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 

Я пытался в течение некоторого времени, чтобы правильно STUB подобного испытания для модели «Комментарий», который вложен под сообщениями , но никакой радости. Любые предложения оценили.

ответ

12

Вам нужно иметь как идентификаторы, передаваемые в ваш метод пут

put :update, :id => "14", :post_id=> "1", :comment => {'these' => 'params'} 
Смежные вопросы