Проблемы с контроллером пространства имен Rails 3 и Rspec 2 - PullRequest
0 голосов
/ 24 декабря 2010

Я пытаюсь написать спецификацию, которая тестирует контроллер с пространством имен, назовем его Admin::FooController.Моя спецификация называется admin_foo_controller_spec.rb.В спецификации я пытаюсь написать очень простую спецификацию, чтобы посмотреть, может ли она получить действие контроллера.

describe "GET 'index'" do
  it "should be successful" do
    get 'index'
    response.should be_success
  end
end

Но вместо этого я получаю ошибку:

 Failure/Error: get 'index'
 No route matches {:controller=>"admin/foo"}

Для другого действия у меня в основном тот же тест, и я получаю, что ответ не успешен.В реальном веб-приложении, я могу получить доступ к этим URL-адресам в порядке.Одна вещь, которую я должен упомянуть, это то, что это не ресурс RESTful (он не имеет смысла как единое целое), так что на самом деле это просто группа связанных административных действий, поэтому в моем маршруте.* Есть идеи, что я делаю не так?Кажется, что пространство имен вызывает проблемы с рельсами, особенно для новичка, как я.Спасибо!

1 Ответ

2 голосов
/ 24 декабря 2010

В вашем маршруте нет действия индексирования в контроллере Foo, попробуйте получить «настройки»

describe "GET 'index'" do
  it "should be successful" do
    get 'settings'
    response.should be_success
  end
end

В спецификации контроллера вам нужно определить действие вашего контроллера, а не реальный маршрут.Вы пробуете маршруты в интеграционном тесте.

...