Как проверить вход в Rails с консоли? - PullRequest
7 голосов
/ 04 сентября 2008

У меня было очень много времени, чтобы понять, как войти в систему и выйти из нее, используя объекты ответа из 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

1 Ответ

3 голосов
/ 05 сентября 2008

«www.example.com» - это хост по умолчанию, заданный в ActionController :: Integration :: Session

>> ActionController::Integration::Session.new.host
=> "www.example.com"

Это установлено в actionpack / lib / action_controller / integra.rb # 75

Вы можете изменить его в интеграционном тесте, выполнив следующие действия:

session = open_session do |s|
  s.host = 'my-example-host.com'
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...