Доступ к контроллеру в Cucumber для проверки входа - PullRequest
0 голосов
/ 08 октября 2010

Прежде всего - я знаю, что это вообще ужасная практика, потому что 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.

1 Ответ

0 голосов
/ 09 октября 2010

Вы можете посетить страницу, где отображается имя пользователя, вошедшего в систему.
Как:
When I go to the account page
Then I should see "Welcome user" within "div#login"

...