2010-05-15 9 views
14

sto avendo qualche difficoltà in fase di test ideare con shoulda:Test elaborare con 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' 

ho questo nel mio test_helper:

include Devise::TestHelpers 

Pensieri? Grazie in anticipo,

Cristi

risposta

17

include Devise::TestHelpers non va nel file test_helper.rb, ma piuttosto all'interno del campo di applicazione delle singole classi di test. Proprio come il loro README mostra:

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

Sì. Era così. Thx –

12

io non sono sicuro se rspeicher è completamente corretta, ma mettere:

class ActionController::TestCase 
    include Devise::TestHelpers 
end 

al fondo di test_helper.rb (sì dopo la END del class ActiveSupport::TestCase) dovrebbe funzionare. Ha finora per 3 o 4 progetti miei, tra cui uno su cui sto lavorando oggi.

È quindi possibile utilizzare sign_in users(:one) se si utilizzano proiettori, nei test. A meno che shoulda non stia scherzando?

+0

Questo è diverso. Stava semplicemente inserendo "include Devise :: TestHelpers" nello scope di base del suo file test_helper.rb, non con scope all'interno della classe TestCase. –

+0

Questo è esattamente ciò che il README dice di fare. – jordanpg

+0

+1 per "sì dopo la fine della classe ActiveSupport :: TestCase" –