2010-05-15 9 views
14

ich bei der Prüfung einige Schwierigkeiten habe entwickeln mit shoulda:Testing entwickelt mit shoulda

2) Error: 
test: handle :index logged as admin should redirect to Daily page. 
(Admin::DailyClosesControllerTest): 
NoMethodError: undefined method `env' for nil:NilClass 
devise (1.0.6) [v] lib/devise/test_helpers.rb:52:in 
`setup_controller_for_warden' 

Ich habe dies in meinem test_helper:

include Devise::TestHelpers 

Gedanken? Vielen Dank im Voraus,

Cristi

Antwort

17

include Devise::TestHelpers geht nicht in der test_helper.rb Datei, sondern innerhalb des Umfangs der einzelnen Testklassen. Genau wie ihre README zeigt:

class ActionController::TestCase 
    include Devise::TestHelpers 
end 
+0

Ja. Das war's. Thx –

12

bin ich nicht sicher, ob rspeicher völlig korrekt ist, aber setzen:

class ActionController::TestCase 
    include Devise::TestHelpers 
end 

am unteren Ende der test_helper.rb (ja nach den END der class ActiveSupport::TestCase) sollte arbeiten. Es hat für 3 oder 4 Projekte von mir bis jetzt, einschließlich eines, an dem ich heute arbeite.

Sie können dann sign_in users(:one) verwenden, wenn Sie Fixtures in Ihren Tests verwenden. Es sei denn, dass sophanda es vermasselt?

+0

Das ist anders. Er hat gerade "include Devise :: TestHelpers" in den Basisbereich seiner test_helper.rb-Datei geschrieben, nicht innerhalb der TestCase-Klasse. –

+0

Genau das sagt die README. – jordanpg

+0

+1 für "Ja nach dem Ende der Klasse ActiveSupport :: TestCase" –