6

मेरे पास सामान्य अनुप्रयोग व्यवहार है जो कुकी सामग्री के आधार पर परिवर्तन करता है, और इसे जांचने की आवश्यकता होती है। उदाहरण के तौर पर, यदि किसी उपयोगकर्ता के पास कुकी सेट नहीं है जो इंगित करता है कि उन्होंने साइट के कानूनी शर्तों को स्वीकार कर लिया है, तो उन्हें टी & सी पृष्ठ पर रीडायरेक्ट करने की आवश्यकता है।मैं रेल में एकीकरण परीक्षण के लिए कुकी कैसे सेट करूं?

मैं का उपयोग कर

request.cookies["legal_accepted"] = "yes" 

हालांकि, इस एकीकरण के परीक्षण वहाँ के साथ काम करने के लिए कोई अनुरोध वस्तु में काम नहीं करेगा एक कार्यात्मक परीक्षण में कुकी सेट कर सकते हैं। मैं ऐसा क्यों प्रलेखन करने में असमर्थ रहा हूं कि ऐसा क्यों है, और क्या अलग है, और अंतर के साथ काम करने के लिए सर्वोत्तम अभ्यास। किसी दिए गए अनुरोध के लिए मैं कुकी कैसे सेट कर सकता हूं? क्यों और क्यों कहीं भी दस्तावेज है?

उत्तर

5

ऐसा करने का एकमात्र तरीका यह है कि अनुरोध में कुकी हेडर मैन्युअल रूप से सेट करना है, उदा।

get "/", {}, { "HTTP_COOKIE" => "legal_accepted=yes; cookie2=value2; "} 
2

रेल 3.2.x (निश्चित रूप से 3.2.16 में) आप एक एकीकरण परीक्षण में सीधे कुकीज़ असाइन कर सकते हैं में:

cookies['foo'] = 'bar' 

अब आप अपने परीक्षण में कुकी 'foo' का उपयोग कर सकते हैं और आवेदन:

puts cookies['foo'] (returns 'bar') 
+0

आप किस परीक्षण ढांचे का उपयोग कर रहे थे? मैं इसे काम करने के लिए नहीं मिल सका। – dylankb

0

आप Poltergeist उपयोग करने के लिए वहाँ कुकीज़ है कि मैं एकीकरण परीक्षणों में उपयोग किया है handeling के लिए कुछ तरीके हैं चाहते हैं। नोट करने के लिए

https://github.com/teampoltergeist/poltergeist#manipulating-cookies

एक बात है कि अगर आप एक कुकी को अपडेट करना चाहते, तो आप पहले कुकी निकालने होगा, तो यह सेट है।

page.driver.remove_cookie("cookie_name") 
page.driver.set_cookie("cookie_name", "some_value") 

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

  • कोई संबंधित समस्या नहीं^_^