Доступ к регистрационной информации начальника в ответе на тест Синатры - PullRequest
0 голосов
/ 01 июня 2011

Практически все, что я ищу, сказано в заголовке - мне нужно получить доступ к пользовательской переменной warden в тесте, чтобы проверить, работает ли аутентификация.Для меня также возможен другой способ, просто попытаться приятно проверить аутентификацию:)

should "authenticate" do
    post "/login", {:login => "test_login", :password => "password"}, {"HTTP_HOST" => "test.host"}
    assert last_response.redirect?
    assert_equal last_response.env["warden"].user.login, "test_login"
end

1 Ответ

0 голосов
/ 02 июня 2011

Вы не можете получить доступ к внутренней среде запросов в полномасштабном тесте в стиле стоечного теста. Если вы хотите убедиться, что вы вошли в систему как конкретный пользователь, вам нужно посмотреть что-то вроде URL-адреса перенаправления (если он перенаправляет на идентифицируемый пользователем URL-адрес) или следовать перенаправлению (легко с помощью rack-test ' s follow_redirect! helper), а затем найдите свидетельство идентификатора пользователя в HTML.

Я бы подумал, что вам на самом деле не нужно тестировать сам Warden, но вы захотите убедиться, что вы предоставляете ему правильную информацию, а не искажаете ее в стеке промежуточного программного обеспечения.

Вы можете найти что-то вроде Огурец , удобное для подлинного заполнения и отправки форм.

Наконец, у Warden есть свои помощники по тестированию (которые определенно работают с rack-test), так что вы можете настроить запрос на вход в систему без необходимости фактически проходить через цикл регистрации в запросе / перенаправлении в каждом тесте - https://github.com/hassox/warden/wiki/testing имеет более подробную информацию.

...