के लिए साइनऑन स्टब मैं एक साधारण फ़ंक्शन का परीक्षण करने की कोशिश कर रहा हूं जो window.location.search पर कॉल करता है। मैं यह समझने की कोशिश कर रहा हूं कि इस कॉल को कैसे दबाया जाए ताकि मैं अपने चयन का यूआरएल वापस कर सकूं।window.location.search
समारोह:
getParameterByName: (name) =>
name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]")
regexS = "[\\?&]" + name + "=([^&#]*)"
regex = new RegExp(regexS)
results = regex.exec(window.location.search) //Stub call to window.location.search
if(results == null)
return ""
else
return decodeURIComponent(results[1].replace(/\+/g, " "))
टेस्ट मामला:
describe "Data tests",() ->
it "Should parse parameter from url",() ->
data = new Data()
console.log("search string: " + window.location.search) //prints "search string:"
window.location.search = "myUrl"
console.log("search string: " + window.location.search) //prints "search string:"
console.log(data.getParameterByName('varName'))
expect(true).toBe(true)
मेरी मूल प्रयास तो जैसे सीधे एक मूल्य के वापस जाने के लिए किया गया था:
sinon.stub(window.location.search).returns("myUrl")
यह, ज़ाहिर है, नहीं है काम। मुझे नहीं लगता कि मैं सही ढंग से स्टब निर्दिष्ट कर रहा हूं, लेकिन यह मेरा इरादा दिखाता है।
इस पर हल करने के तरीके पर कोई भी विचार बहुत सराहना की जाएगी।
मैंने इसे पहले कोशिश की है और मैंने इसे फिर से कोशिश की है: 'TypeError: स्ट्रिंग प्रॉपर्टी सर्च को फ़ंक्शन के रूप में लपेटने का प्रयास किया गया है' –
ओह क्षमा करें, 'window.location.search' एक स्ट्रिंग फ़ंक्शन नहीं है, इसलिए आप कर सकते हैं इसे रोक नहीं है। स्टब को असाइनमेंट के साथ बदलें: 'window.location.search = "myUrl" '। –
अजीब, एक कंसोल.लॉग को रिक्त स्ट्रिंग में परिणामों के पहले और बाद में निष्पादित करना, इसलिए मुझे यकीन नहीं है कि क्या हो रहा है। असाइनमेंट चिपक नहीं रहा है। मैंने अपना टेस्ट केस भी दिखाने के लिए अपना कोड अपडेट किया। –