Прежде всего - я знаю, что это вообще ужасная практика, потому что Cucumber предназначен только для проверки результатов. Я просто хочу сделать это для одного очень очень конкретного случая.
У меня есть приложение, которое обрабатывает аутентификацию пользователя с помощью файла cookie, установленного другим приложением, которое я поддерживаю. Я хотел бы написать очень простой интеграционный тест для аутентификации:
Given I have logged as "some_user" on the SSO server
When I visit any page
Then I should be logged in as "some_user"
Мое текущее определение шага для Тогда следующее:
Then /^I should be logged in as "([^"]*)"$/ do |username|
user = User.find_by_username(username)
assert_equal @controller.current_user, user
end
Очевидно, что это происходит с "неопределенным методом 'current_user' для nil: NilClass".
В случае, если это не очевидно - ApplicationController # current_user возвращает либо пользователя, вошедшего в данный момент, либо nil.