rspec не вызывает мое настраиваемое действие для контроллера пространства имен rails 3? - PullRequest
3 голосов
/ 16 января 2011

У меня проблема с тестированием контроллера администратора rails 3. похоже, что действие контроллера даже не вызывается. я проверил это, заставив действие явным образом вызвать исключение, и тест не показывает этот факт.

со следующим кодом, мой тест успешно пройден. исключение должно привести к сбою теста, если my_custom_action действительно был вызван.

Контроллеры / админ / things_controller.rb

class Admin::ThingsController < Admin::AdminController
  def my_custom_action
    raise 'this should be bad'
  end
end

спецификация / контроллеры / администратор / things_controller_spec.rb

describe Admin::ThingsController do
  it "shouldn't work!" do
    post :my_custom_action
  end
end 

конфиг / routes.rb

namespace :admin do
  resources :things do
    post :my_custom_action, :on => :collection
  end
end

всякий раз, когда я удаляю маршрут, тест завершается неудачей с ошибкой «нет совпадающего маршрута», поэтому я не совсем понимаю, почему кажется, что при определении маршрута действие не вызывается

что мне не хватает для тестирования маршрутов пространства имен через rspec?

1 Ответ

0 голосов
/ 17 сентября 2012

Исключение, выброшенное и не перехваченное в процессе контроллера (сервере), по умолчанию не перебрасывается на стороне rspec, обычно вы должны проверить ответ (в данном случае это не 200 нормально):

post :something_wrong
response.should be_ok
...