में अपरिभाषित स्थानीय चर या विधि 'सत्र' मैं रेल अनुप्रयोग पर रूबी बना रहा हूं, और यह देखने के लिए कि "मुझे याद रखें" सुविधा काम करता है या नहीं, मेरे उपयोगकर्ता मॉडल से जुड़े एक परीक्षण को चलाने का प्रयास कर रहा हूं। मैं कुकीज़ को स्टोर करने के लिए रेल के इनबिल्ट cookies
हैश का उपयोग कर रहा हूं, और वर्तमान सत्र को स्टोर करने के लिए session
हैश का उपयोग कर रहा हूं। मैंने विभिन्न परीक्षण (एकीकरण, मॉडल और नियंत्रक) चलाए हैं जहां मैं session
चर का उपयोग करता हूं, लेकिन इस विशेष मामले में किसी कारण से इसे पहचाना नहीं जा रहा है।मॉडल परीक्षण
NameError: undefined local variable or method `session' for #<UserTest:0x0000000658b5c8>
त्रुटि नीचे log_in_as
विधि में else
ब्लॉक में होता है:
test_helper.rb
...
def log_in_as(user, options = {})
password = options[:password] || 'password'
remember_me = options[:remember_me] || '1'
if integration_test?
post login_path, session: { email: user.email, password: password, remember_me: remember_me }
else
session[:user_id] = user.id
end
end
मैं अपने उपयोगकर्ता परीक्षण में log_in_as
कहते हैं; इन दोनों परीक्षणों में असफल रहा।
user_test.rb
require 'test_helper'
...
test "login with remembering" do
log_in_as(@user, remember_me: '1')
assert_not_nil cookies['remember_token']
end
test "login without remembering" do
log_in_as(@user, remember_me: '0')
assert_nil cookies['remember_token']
end
...
और जब मैं सहायक से कोड की है कि लाइन निकालने के लिए, एक त्रुटि कह रही है कि cookies
मान्यता प्राप्त नहीं है फेंक दिया है। यहाँ क्या मुद्दा है?
यह SO उत्तर देखें http://stackoverflow.com/questions/7216847/setting-a-session-variable-in-a-model। असल में, आपके पास सीधे अपने मॉडल में इन विशेष हैश तक पहुंच नहीं है। –
क्या यह मामला भी एक परीक्षण में है? ये फ़ाइलें 'test/test_helper.rb' और 'test/models/user_test.rb' पर स्थित हैं। मेरे पास वास्तव में 'test_helper.rb' में सत्र के लिए अन्य कॉल हैं, इस उपयोगकर्ता की लॉग इन करने के लिए इस सहायक विधि की तरह: ' सत्र [: user_id] .nil? ' – sarangj