2010-12-29 3 views
4

Ich versuche funktionale Tests durchzuführen und muss mich mit Warden einloggen.Funktionsprüfung mit Warden?

ich getan habe:

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

Mein Testfall ist einfach:

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

Ich mache login_as(user) und es scheint, außer zu arbeiten, wenn ich ein get '/admin' tun wird es scheitern mit:

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' 

irgendwelche Ideen?

+0

Als Alternative kann ich zeigen Ihnen diese @ controller.stubs etwas spöttisch zu verwenden (: current_user) Rückkehr innen (@user) Glück gehabt auf das? –

Antwort

0

Devise hat Helfer, die damit umgehen können. Das ist wenig hilfreich, wenn Sie nur Warden benutzen. Der Grund dafür ist, dass der Action Controller die Dinge in der Testumgebung anders aufstellt. Ich stelle ein kleines Juwel zusammen, das ein Modul zur Verfügung stellt, das Sie für die Arbeit mit Aufseher mit Schienen im Testmodus einschließen können: github.com/ajsharp/warden-rspec-rails.

Verwandte Themen