2017-05-18 9 views
6

मैं निम्नलिखित स्टब्स पूरी तरह से पहलेसिनोन ठूंठ callsFake तर्क

sinon.stub(console, 'log',() => { 
    // Check what the arguments holds 
    // And either console.info it or do nothing 
}); 

उदाहरण के लिए चल रहा है, अंदर वहाँ console.info(arguments) जोड़ने, मुझे दिखाओ होता था जो कुछ console.log हो रही थी।

संस्करण 2xx के साथ मैं callsFake में स्विच:

sinon.stub(console, 'log').callsFake(() => { 
    // Check what the arguments holds 
    // And either console.info it or do nothing 
}); 

यह अब काम करता है। console.info(arguments) में बाजार मूल्य हैं, और console.log के साथ क्या करने के लिए कुछ भी नहीं है।

मैं क्या गलत कर रहा हूं ?!

+1

रिटर्न के साथ callsFake के बजाय ऐसे() –

उत्तर

0

तीर फ़ंक्शन आप callsFake पर जा रहे हैं arguments ऑब्जेक्ट प्राप्त नहीं करता है जैसा कि आप आमतौर पर नियमित फ़ंक्शन में अपेक्षा करते हैं।

MDN से

एक तीर समारोह अभिव्यक्ति एक समारोह अभिव्यक्ति की तुलना में कम वाक्यविन्यास है और अपने स्वयं के इस, तर्क, सुपर, या new.target जरूरत नहीं है।

या तो एक नियमित रूप से गुमनाम समारोह (function() {...}) करने के लिए अपने तीर समारोह बदल सकते हैं या फैल ऑपरेटर का उपयोग स्पष्ट तर्क खोल रहे हैं:

sinon.stub(console, 'log') 
console.log.callsFake((...args) => { 
    console.info(args) 
}); 
संबंधित मुद्दे