पर Rspec में जारी रहती है नहीं है यह निम्न वातावरण में एक नियंत्रक कल्पना में कुकीज़ संग्रह के साथ एक समस्या है:कुकीज़ रेल 3.1
- रेल 3.1.0.rc4
- rspec 2.6.0
- rspec-रेल 2.6.1
मैं एक साधारण नियंत्रक कल्पना है कि एक फैक्टरी उपयोगकर्ता बनाता है, विधि में एक संकेत है जो एक कुकी सेट कहता है, और फिर अगर उपयोगकर्ता साइन इन एक पेज पर पहुंच सकते हैं देखने के लिए परीक्षण किया है। समस्या यह है कि सभी कुकीज़ प्रमाणीकरण कुकी सेट होने और मेरे नियंत्रक पर "शो" क्रिया के बीच गायब होने लगती हैं।
रेल कोड सर्वर पर ब्राउज़र में चलाते समय मेरा कोड ठीक काम करता है। कल्पना चलाने के दौरान भी अजनबी व्यवहार यह है कि कुकीज हैश के बावजूद सब कुछ सेट हो गया है लेकिन सत्र हैश के माध्यम से सेट सब कुछ बनी हुई है। क्या मुझे बस कुछ याद आ रहा है कि rspec का उपयोग करते समय कुकीज़ कैसे काम करती है?
युक्ति कोड
it "should be successful" do
@user = Factory(:user)
test_sign_in @user
get :show, :id => @user
response.should be_success
end
कोड साइन इन
def sign_in(user, opts = {})
if opts[:remember] == true
cookies.permanent[:auth_token] = user.auth_token
else
cookies[:auth_token] = user.auth_token
end
session[:foo] = "bar"
cookies["blah"] = "asdf"
self.current_user = user
#there are two items in the cookies collection and one in the session now
end
प्राप्त पर प्रमाणीकरण की जांच: शो अनुरोध यहां विफल रहता है क्योंकि कुकीज़ [: auth_token] है नहीं के बराबर
def current_user
#cookies collection is now empty but session collection still contains :foo = "bar"... why?
@current_user ||= User.find_by_auth_token(cookies[:auth_token]) if cookies[:auth_token]
end
इस है एक दोष? क्या यह किसी तरह का इरादा व्यवहार है जिसे मैं समझ नहीं पा रहा हूं? क्या मैं बस कुछ स्पष्ट दिख रहा हूँ?
मैं एक ही समस्या मिलता है - मैं क्रमपरिवर्तन की बहुत कोशिश की और चारों ओर पक्ष है और मैं इसे ठीक से काम करने के लिए नहीं मिल सकता –