Новичок Rspec: Быстрый пример теста вложенного контроллера? - PullRequest
7 голосов
/ 13 января 2011

Я только начинаю с 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

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

1 Ответ

12 голосов
/ 13 января 2011

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

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