Rails - Как просто издеваться над current_user (OmniAuth) в Test::Unit?

Я пытаюсь понять, как я могу смоделировать (просто) current_user внутри своих модульных тестов в Rails? (Я использую Test::Unit). Я пытался искать в Google и StackOverflow, но ничего действительно полезного!

Любые идеи?

Спасибо!


person Amokrane Chentir    schedule 28.04.2011    source источник


Ответы (1)


Если вы находитесь в модульном тесте, вам, вероятно, следует передать current_user в свой процесс. При тестировании с более высокого уровня, где вам действительно будет интересен current_user, в OmniAuth есть несколько имитаций для тестов.

Посмотрите здесь: https://github.com/intridea/omniauth/wiki/Intridea-Testing< /а>

Надеюсь, это поможет.

person Matt Polito    schedule 13.07.2011
comment
Как вы определяете роли? Если вы пытались запустить интеграционные тесты для пользователей/администраторов, хэш mock_auth не позволяет вам условно изменить роль... что я упустил? - person Mohamad; 26.02.2013
comment
насмешка, описанная выше, на самом деле настраивает хэш аутентификации, который ваше приложение будет получать от провайдера Oauth. Если провайдер не передаст параметр роли в своем хэше, это не будет иметь ничего общего с ролями. - person Matt Polito; 28.02.2013
comment
Да, я понял, что способ сделать это — создать пользователя-администратора с тем же uid, что и omniauth, а затем войти в систему. Таким образом, пользователь будет найден и вошел в систему как администратор, а не создан. - person Mohamad; 28.02.2013