2011-10-23 1 views
7

मैं अपने सभी यूनिट परीक्षणों को डिफ़ॉल्ट test.host के बजाय www.test.host का उपयोग करना चाहता हूं।रेल अनुरोध डिफ़ॉल्ट अनुरोध होस्ट

मैंने को config/environments/test.rb में सेट करने का प्रयास किया, लेकिन इसे प्राप्त नहीं हुआ।

मेरे उद्देश्य मेरी नियंत्रक परीक्षण में कोई रीडायरेक्ट से बचने के लिए है, अपने परीक्षण में response वस्तु निरीक्षण के उत्पादन में है:

#<ActionController::TestResponse:0x000001059ed378, ..., @header={"Location"=>"http://www.test.host", ... , @status=301, @body=["<html><body>You are being <a href=\"http://www.test.host\">redirected</a>.</body></html>"], ... , "REQUEST_METHOD"=>"GET", "SERVER_NAME"=>"example.org", "SERVER_PORT"=>"80",... , "HTTP_HOST"=>"test.host", "REMOTE_ADDR"=>"0.0.0.0" ...>> 

यदि यह एक अंतर है, मैं Rails3 और RSPEC2

उपयोग कर रहा हूँ बनाता है

उत्तर

11

आप अपने परीक्षण में request.host सेट करके इसे करते हैं। आप इसे अपने test_helper.rb में जोड़कर वैश्विक स्तर पर कर सकते हैं (रेलवे 3.1 में, वैसे भी, पिछले संस्करणों के बारे में सुनिश्चित नहीं है, लेकिन मुझे लगता है कि यह समान है):

class ActionController::TestCase 
    setup do 
    request.host = "www.test.host" 
    end 
end