Функциональное тестирование с Warden? - PullRequest
4 голосов
/ 29 декабря 2010

Я пытаюсь выполнить функциональное тестирование и мне нужно войти в систему с помощью Warden.

Я сделал:

class ActionController::TestCase
    include Warden::Test::Helpers
end

Мой тестовый пример прост:

def test_access_admin_as_superuser
  login_as(Person.make(:superuser))
  get :index
  assert_response :success
  assert_nil flash[:warning]
end

Я делаю login_as(user), и, похоже, он работает, за исключением случаев, когда я делаю get '/admin'.

1) Error:
test_access_admin_as_superuser(AdminControllerTest):
 NoMethodError: undefined method `user' for nil:NilClass
/home/silas/.rubygems/gems/gems/rails_warden-0.5.2/lib/rails_warden/controller_mixin.rb:21:in `current_user'
app/controllers/application_controller.rb:100:in `require_user'
test/functional/admin_controller_test.rb:20:in `test_access_admin_as_superuser'

есть идеи?

1 Ответ

0 голосов
/ 06 апреля 2013

У Devise есть помощники, чтобы справиться с этим, что мало поможет, если вы просто используете Warden.Причина состоит в том, что контроллер действий настраивает вещи в тестовой среде по-другому.Я собрал небольшой драгоценный камень, который предоставляет модуль, который вы можете включить для работы с надзирателем с рельсами в тестовом режиме: github.com / ajsharp / warden-rspec-rails .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...