Я добавил следующее в мой файл config / rout.rb:
match 'login' => 'sessions#new'
match 'logout' => 'sessions#destroy'
match 'auth/:provider/callback' => 'sessions#create'
match 'auth/failure' => 'sessions#new'
match 'sessions/delegate' => 'sessions#delegate'
Это позволяет мне иметь мою собственную форму входа в систему, которая аутентифицируется через OmniAuth и поставщика OpenID в этом случае. Маршруты и код работают хорошо, но у меня проблема с написанием функциональных тестов для SessionsController.
Тестирование нового действия работает хорошо:
test "show login form when requesting new session" do
get :new
assert_response :success
end
Но тестирование действия создания дает мне исключение: ActionController :: RoutingError: Нет подходящих маршрутов {: controller => "session",: action => "create"}
Код такой:
test "create session adds logged in user" do
request.env['rack.auth'] = {:uid => auths(:one).open_id, :provider => 'open_id'}
post :create
# assert that create action did it's things here
end
Я пытался заменить пост на get, но результат тот же.
Почему найдено одно действие, а не другое?