जहाँ तक मैं कह सकता हूं, आप नहीं कर सकते। एकीकरण परीक्षणों में सत्र मान (रेल 3.2.2 में) एक प्रति है। (रेल देवता: अगर मैं गलत हूं तो कृपया मुझे सही करें।) आप मान सेट कर सकते हैं, लेकिन यह अगले 12/ को प्राप्त/प्रभावित नहीं करेगा क्योंकि यह वास्तविक सत्र की स्थानीय प्रति है। जोर परीक्षण के लिए बढ़िया, एकीकरण परीक्षण के दौरान सत्र में राज्य को रखने के लिए इतना अच्छा नहीं है।
मेरे पास एवरग्रीन के माध्यम से मेरे जावास्क्रिप्ट परीक्षण का समर्थन करने के लिए एक परीक्षण नियंत्रक है।
मेरा समाधान मेरे परीक्षण नियंत्रक के लिए एक विधि जोड़ने और पर उपलब्ध एक मार्ग था जब मैं उत्पादन में नहीं हूं, जो मुझे सत्र मान सेट करने की अनुमति देता है।
मूल रूप से मेरी app_test # set_session विधि एक उपसर्ग के लिए पैरामीटर नाम स्क्रीन, यदि उपसर्ग पाया जाता है, तो उपसर्ग छीन पैरामीटर नाम के लिए सत्र का मूल्य निर्धारित है। कुछ की तरह:
prefix = "set_session_"
post("/set_session.html", { (prefix + "user_id") => "My Name Is Mudd" })
के रूप में के रूप में "सत्र सुंदर नहीं:
params.each() do |key, value|
next if (key !~ /^set_session_/)
session[ key.slice(("set_session_".size())..-1).to_sym ] = value
end
# don't forget to render something/anything
तो, अपने एकीकरण परीक्षण के दौरान सत्र चर सेट करने के लिए, मैं एक छोटे से की तरह कोड का हिस्सा है [: user_id] = ' माई नेम इज मूड 'है, लेकिन यह काम करता है। मेरा अगला पोस्ट/प्राप्त सत्र [: user_id] वांछित मूल्य के साथ सेट करेगा।
यह आसानी से पूर्णांक, प्रतीकों, आदि को पारित करने के लिए बढ़ाया जाता है, और निश्चित रूप से, एकाधिक सत्र कुंजी/मूल्य जोड़े एक बार में सेट किए जा सकते हैं। सुंदर नहीं है, लेकिन खराब नहीं है।
यह ट्विटर या फेसबुक के खिलाफ है। – jbasko
क्या इससे मदद मिलती है? http://stackoverflow.com/questions/5331045/testing-a-web-applications-facebook-integration-with-cucumber –