2008-09-04 19 views
6

मुझे रेल से प्रतिक्रिया वस्तुओं का उपयोग करके लॉग इन करने और लॉगआउट करने का तरीका पता लगाने में एक समय का एक बिल्ली था। मानक ब्लॉग ठीक थे, लेकिन अंत में मैंने इसका निदान किया, और मैं इसे यहां रिकॉर्ड करना चाहता था।कंसोल से लॉग इन लॉग इन करने का परीक्षण कैसे करूं?

app.get '/' 
assert_response :success 
app.get '/auth_only_url' 
assert_response 302 
user = User.find(:user_to_login) 
app.post '/signin_url', 
       :user_email => user.email, 
       :user_password => '<password in clear>' 
assert_response 302 
app.follow_redirect! 
assert_response :success 
app.get '/auth_only_url' 
assert_response :success 

ध्यान दें, इसके बाद के संस्करण का तात्पर्य है कि आप एक असफल प्रमाणन अनुरोध के बाद पुन: निर्देशित, और भी आप में प्रवेश करने के बाद पुन: निर्देशित है।

सुनिश्चित करने के लिए है कि आप अपने परीक्षण वातावरण डीबी में जुड़नार लोड (जो आम तौर होता है , के रूप में ActionController में सेट

rake db:fixtures:load RAILS_ENV=test 

(पैट्रिक रिची से) डिफ़ॉल्ट यूआरएल के लिए 'www.example.com' दिखाई देगा यह डिफ़ॉल्ट मेजबान के रूप में ::: रेक परीक्षण) के दौरान, सुनिश्चित करें कि आप निम्नलिखित को निष्पादित कर एकीकरण :: सत्र

ActionController::Integration::Session.new.host=> "www.example.com" 

यह actionpack/lib/action_controller/# 75

एकीकरण परीक्षण में यह बदलने के लिए, निम्न कार्य करें integration.rb में स्थापित किया जाएगा:

session = open_session do |s| s.host = 'my-example-host.com' end 

उत्तर

2

'www.example। कॉम 'के रूप में ActionController :: एकता :: सत्र

>> ActionController::Integration::Session.new.host 
=> "www.example.com" 

यह actionpack में सेट किया गया है में सेट डिफ़ॉल्ट मेजबान है/lib/action_controller/i ntegration.rb # 75

आप निम्न कार्य करके अपने एकीकरण की परीक्षा में इसे बदलने के लिए सक्षम होना चाहिए:

session = open_session do |s| 
    s.host = 'my-example-host.com' 
end 
संबंधित मुद्दे