Использование мокко для контроллера в функциональном тестировании с RSPEC - PullRequest
0 голосов
/ 17 марта 2011

Я делаю некоторые тесты здесь, используя Rspec, и я хотел бы убедиться, что контроллер вызывает метод log в некоторых действиях.Я также использую mocha.

Я хотел бы что-то вроде этого:

it "update action should redirect when model is valid" do
    Tag.any_instance.stubs(:valid?).returns(true)
    put :update, :id => Tag.first
    controller.expects(:add_team_log).at_least_once
    response.should redirect_to(edit_admin_tag_url(assigns[:tag]))
  end

Есть ли что-то для использования в качестве переменной 'controller'?Я пытался самостоятельно, имя класса контроллера ...

Ответы [ 2 ]

1 голос
/ 15 августа 2011

Мне только что помогли с этим.Для тестирования контроллеров вы должны вложить свои спецификации в описание имен контроллера.(Спецификация также должна быть в папке Controllers)

describe ArticlesController do
  integrate_views
    describe "GET index" do
     ...
      it "update action should redirect when model is valid" do
         ...
        controller.expects(:add_team_log).at_least_once
    ...
     end
   end

end

0 голосов
/ 17 марта 2011

Я думаю, что вы хотите @controller вместо контроллера. Вот пример из моего набора тестов:

it "delegates to the pricing web service" do
  isbn = "an_isbn"
  @controller.expects(:lookup)
    .with(isbn, anything)
    .returns({asin: "an_asin"})

  get :results, isbn: isbn
  assert_response :success
end
...