开发者

Functional testing with Warden?

开发者 https://www.devze.com 2023-02-01 11:02 出处:网络
I\'m trying to do functional testing and need to login with Warden. I have done: class ActionController::TestCase

I'm trying to do functional testing and need to login with Warden.

I have done:

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

My test case is simple:

def test_access_admin_as_superuser
  login_as(Person.make(:superuser))
  get :index
  assert_response :success
  asse开发者_StackOverflow中文版rt_nil flash[:warning]
end

I do a login_as(user) and it seems to work except when I do a get '/admin' it will fail with:

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'

any ideas?


Devise has helpers to deal with this, which is of little help if you're just using Warden. The reason things break is because action controller sets things up in the test environment in a different way. I put together a little gem that provides a module you can include for working with warden with rails in test mode: github.com/ajsharp/warden-rspec-rails.

0

精彩评论

暂无评论...
验证码 换一张
取 消