Rails версии 3.0.4 и Ruby 1.9.2
Я использую гем devise и настроил свое приложение так, чтобы пользователь выполнил вход для выполнения любого действия. При написании своих функциональных тестов я обнаружил, что во всех тестах возникла одна и та же ошибка.
`method_missing': undefined method `new_user_session_path'
Это странно, если я rake routes
вижу
new_user_session GET /devise/login(.:format) {:action=>"new", :controller=>"devise/sessions"}
Я также могу подтвердить, что при запуске приложения все link_to
работают при использовании этого пути.
Есть ли что-то особенное, что я должен сделать для теста определенного контроллера, чтобы увидеть другие маршруты?
routes.rb
Nge::Application.routes.draw do
resources :companies
resources :users
devise_for :users, :path => "devise", :path_names => { :sign_in => 'login', :sign_out => 'logout', :password => 'secret', :confirmation => 'verification', :unlock => 'unblock', :registration => 'register', :sign_up => 'cmon_let_me_in' }
...
end
тест / функционал / companies_controller_test.rb
require 'test_helper'
class CompaniesControllerTest < ActionController::TestCase
context "When a user is NOT signed in" do
[:index, :new].each do |action|
context "and GET ##{action.to_s}" do
setup {get action}
should set_the_flash.to(/must sign-up/)
should redirect_to(new_user_session_path)
end
end
...
end
end