Я пытаюсь начать новый сеанс пользователя, создав помощника, который отправляет новый сеанс пользователя.Вот что у меня есть
def login(user)
post user_session_path, :login => user.username, :password => user.password
end
И для пользователя
user = Factory.create(:user)
У меня есть тест в RSpec, который направляет пользователя на страницу, требующую аутентификации.Используя помощника, я ожидаю, что будет создан новый пользовательский сеанс.Однако, запуская спецификацию, она говорит мне, что текущая страница - это экран входа в систему.Это говорит о том, что новый пользовательский сеанс не создается, и пользователь перенаправляется на экран входа в систему при доступе к ограниченному ресурсу без пользовательского сеанса.Глядя на журналы испытаний, это именно тот случай.
Также, просматривая журналы, он говорит, что действие POST не авторизовано.
Started POST "/login" for 127.0.0.1 at 2012-02-04 13:34:59 -0800
Processing by SessionsController#create as HTML
Parameters: {"login"=>"foo12", "password"=>"[FILTERED]"}
Completed 401 Unauthorized in 1ms
Processing by SessionsController#new as HTML
Parameters: {"login"=>"foo12", "password"=>"[FILTERED]"}
Rendered devise/shared/_links.erb (1.4ms)
Completed 200 OK in 15ms (Views: 12.7ms | ActiveRecord: 0.0ms)
Я пытался вручную использовать страницу входа черезбраузер и смог создать сеанс просто отлично.Я также написал тест с Capybara, который посещает страницу входа в систему, вводит учетные данные пользователя и отправляет.Это создает новый пользовательский сеанс без проблем.