так что стиль test "something here"
- это способ помочь нам. По сути, это то же самое, что и def test_as_you_want
, но они помогли нам, убрав эти неприятные '_ (подчеркивания)' и обернув фактическую формулировку теста в строку. Это изменение вернулось, фу ... может 2.3.х. этот факт необходимо проверить, но как минимум полтора года назад.
Твоя вторая вещь немного сложнее ответить человеку. Какой плагин вы используете, или вы один из тех парней, которые пишут свою собственную систему аутентификации?
В любом случае, посмотрите, как это делают «знаменитые» плагины аутентификации. от Restful Auth до Devise, в основном вам нужен тест, который вы можете:
- Регистрация для учетной записи пользователя
- все ваши письма с подтверждением отправлены и т.д ..
Большинство из них «обманывают» или выбирают легкий путь, например, передавая помощника по имени signed_in users(:one)
. Предполагая, что вы крутые и используете светильники.
По сути, вот как выглядит вспомогательный метод, если в вашем плагине / геме Auth его нет, например, в Clearance, которого не было, когда я впервые писал свои тесты ... не уверен, есть ли он сейчас, но это проливает свет на то, как это должно выглядеть. Обратите внимание, что я прокомментировал Restful Auth и как он / они это сделали:
#login user
def login_user(user = users(:one))
#Restful Auth Example
# @request.session[:user_id] = user ? users(user).id : nil
# Clearance
@controller.class_eval { attr_accessor :current_user }
@controller.current_user = user
return user
end
На самом деле я думаю, что украл это у их помощника по входу в систему musta ... это, вероятно, то, что я сделал. В любом случае он показывает, как подделать логин пользователя.
Теперь, когда вы тестируете, просто передайте этот метод login_user вашему тесту, когда вам нужно, чтобы пользователь вошел в систему, и начните тестировать оставшуюся часть метода, не беспокоясь о том, что он вошел в систему. 1000 человек, следовавших за ним на github, закричали бы, если бы он, по крайней мере, НЕ ЗАЙТИ этого парня.
ура