Ruby on Rails - Тестовый блок - PullRequest
       0

Ruby on Rails - Тестовый блок

0 голосов
/ 29 апреля 2011

У меня есть тест:

test "should not allow access" do
    get :new
    assert_redirected_to new_user_session_url
 end

Я использую devise для аутентификации.

У меня есть два представления для каждого из моих действий: одно нормальное и одно для мобильных устройств, поэтому, прежде чем я использовал обычное представление по умолчанию (sign_in.html.erb) - тест прошел, но когда я добавил мобильное представление (sign_in.mobile.erb) я получил следующее сообщение об ошибке.

Ожидаемый ответ будет перенаправлением на http://test.host/users/sign_in, но был перенаправлением на http://test.host/users/sign_in.mobile

Итак, с точки зрения тестирования клиента - логика работает нормально, например. в случае, если пользователь не аутентифицирован, он будет перенаправлен на новый путь сеанса (new_user_session_url). Это работает и для мобильных устройств (мобильный клиент будет перенаправлен на мобильное представление страницы входа в систему), но по некоторым причинам тест не пройден, если клиент является мобильным устройством, а мой контроллер перенаправлен на мобильное представление.

Мой вопрос, как исправить тест? Я пробовал:

assert_redirected_to new_user_session_path

assert_redirected_to :controller => "devise/session", :action => "new"

но безуспешно и то же сообщение об ошибке в случае, если клиент является мобильным устройством, и перенаправление происходит в мобильном представлении.

Есть мысли?

1 Ответ

1 голос
/ 29 апреля 2011
assert_redirected_to new_user_session_path(:format => 'mobile')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...