2009-08-23 5 views
3

У меня возникли проблемы с использованием огурца и webrat для проверки подлинности authlogic-openid в приложении rails. После того, как Ryan Bates's excellent screencast я смог установить authlogic с плагином open-id. OpenID работает, когда я вхожу в систему с помощью браузера, но до сих пор я не смог протестировать приложение, используя огурец и webrat.Каков наилучший способ проверить authlogic-open-id с огурцом и webrat?

Я пробовал использовать rots в качестве открытого сервера id. Опять же, это работает, когда я пытаюсь использовать его в браузере, но webrat не будет корректно следовать перенаправлению get/post, требуемому для аутентификации, с открытым фиктивным открытым сервером id.

This answer on SO suggests переопределить метод аутентификации, чтобы всегда возвращать успешный логин, но этот подход не кажется интеграционным тестированием приложения.

Каков наилучший способ функционального тестирования authlogic-open-id? Должен ли я даже беспокоиться? Должен ли я тестировать действия, когда пользователь уже выполнил вход и предположим, что OpenID будет работать?

ответ

1

Я задал тот же вопрос в списке рассылки authlogic. У меня есть хороший ответ, который позволяет мне использовать WWW: Механизм с некоторым кодом патча, который заставляет webrat следовать всем переадресациям. Это, похоже, работает для выполнения тестирования интеграции рельсов, используя открытый идентификатор authlogic с локальным открытым сервером id.

Вот в discussion thread.

2

Вы пробовали тестовый помощник set_session_for(@user)? Я бы предположил, что плагин протестирован, и нет необходимости снова его тестировать (если вы его не модифицировали).

+0

Спасибо за ваш ответ. Я не думаю, что можно установить переменные сеанса для webrat, поскольку он ведет себя как браузер, просматривающий веб-сайт независимо от кода тестирования. Поэтому рубиновые переменные не могут быть переданы ему. Также я не пытаюсь проверить authlogic конкретно, но как мои системы аутентификации работают по всему сайту в целом. –