2013-10-21 7 views
8

मेरी spec_helper.rb में मैंरेल 4 + Rspec + वसीयत: सब हुक I'am की कोशिश कर रहा: एक उपयोगकर्ता

config.include Devise::TestHelpers, :type => :controller 

जोड़ दिया है नियंत्रक कल्पना में पहले sign_in के लिए अपरिभाषित विधि 'env' नियंत्रक चश्मा में शून्य के लिए अपरिभाषित विधि `env ': इस कोड

@request.env["devise.mapping"] = Devise.mappings[:user] 
user = FactoryGirl.create(:confirmed_user) 
sign_in user 

और NoMethodError पाने के साथ उपयोगकर्ता को प्रवेश NilClass।

कोई विचार?

+0

वार्डन :: टेस्ट :: हेल्पर्स की आवश्यकता का प्रयास करें। http://stackoverflow.com/questions/8996246/rspec-integration-test-with-devise-throws-nomethoderror-error: इस सूत्र देखें –

उत्तर

15

मैं before(:each) को before(:all) बदल दिया है, और अब यह काम करता है। rspec 2.14.1 एपीआई devise (प्रयुक्त github मास्टर शाखा) के बीच असंगति और ऐसा लगता है।

0

नियंत्रक spec में एक अनुरोध वस्तु होगी। आप शायद @request अनुरोध करने के लिए से बदलना चाहिए ..

request.env["devise.mapping"] = Devise.mappings[:user] 
1

बाहर @request.env["devise.mapping"] = Devise.mappings[:user] लाइन टिप्पणी अगर आप वसीयत के आंतरिक नियंत्रकों के लिए चश्मा लिख ​​रहे हैं। Devise docs में परीक्षण सहायक अनुभाग से संदर्भित।

संबंधित मुद्दे