Я начал писать функциональные тесты для моего приложения rails сегодня. Я использую плагин аутентификации RESTful. Я столкнулся с парой запутанных вещей, которые, я надеюсь, кто-то сможет прояснить для меня.
1) Я написал функцию быстрого входа в систему, потому что большинство функций в моем приложении rails требуют аутентификации.
def login_as(user)
@request.session[:user_id] = user ? user.id : nil
end
Проблема, которую я вижу с этой функцией, заключается в том, что она в основном подделывает аутентификацию. Должен ли я беспокоиться об этом? Может быть, это нормально, если я проверяю настоящий метод аутентификации где-нибудь. Или, может быть, это ужасная практика.
2) Второй сбивающий с толку момент заключается в том, что в некоторых местах моих функциональных тестов мне необходим полный процесс аутентификации. Когда пользователь активирован, у меня есть метод do_activate для создания некоторых начальных объектов для пользователя. Это аналогично созданию пустого объекта блокнота и пера для студенческого приложения, если это имеет смысл.
Итак, чтобы правильно протестировать мое приложение, мне нужно, чтобы пользователь перешел в это состояние активации, чтобы эти объекты были созданы. В настоящее время я использую Factory Girl для создания пользователя, а затем вызываю функцию login_as, описанную выше, для поддельной аутентификации.
Полагаю, другим вариантом будет пропустить полную последовательность аутентификации и просто создать пустые объекты с помощью Factory Girl. Я мог бы проверить правильность аутентификации где-нибудь еще.
Что вы думаете? Если я должен пройти через правильную последовательность, почему код ниже не вызывает функцию do_activate?
user = Factory.create(:user)
user.active = 1
user.save
Спасибо!