У меня было очень много времени, чтобы понять, как войти в систему и выйти из нее, используя объекты ответа из Rails. Стандартные блоги были в порядке, но я наконец диагностировал это, и я хотел сделать запись здесь.
app.get '/'
assert_response :success
app.get '/auth_only_url'
assert_response 302
user = User.find(:user_to_login)
app.post '/signin_url',
:user_email => user.email,
:user_password => '<password in clear>'
assert_response 302
app.follow_redirect!
assert_response :success
app.get '/auth_only_url'
assert_response :success
Обратите внимание, что вышеизложенное подразумевает, что вы перенаправляете после неудачного запроса авторизации, а также перенаправляете после входа в систему.
Чтобы убедиться, что вы загружаете приборы в базу данных вашей тестовой среды (что обычно происходит во время теста рейка), убедитесь, что вы выполнили следующее:
rake db:fixtures:load RAILS_ENV=test
(от Патрика Ричи)
URL по умолчанию будет выглядеть как «www.example.com», так как этот хост по умолчанию настроен в ActionController :: Integration :: Session
ActionController::Integration::Session.new.host=> "www.example.com"
Это установлено в actionpack / lib / action_controller / интеграции.rb # 75
Чтобы изменить его в интеграционном тесте, выполните следующие действия:
session = open_session do |s| s.host = 'my-example-host.com' end