2016-12-19 16 views
5

मैं console.warn/त्रुटि mock करने की कोशिश कर रहा हूँ लेकिन मैं नहीं कर सकता। मैं एक थर्ड-पार्टी-लाइब्रेरी का उपयोग करता हूं जो इसके अंदर console.warn को कॉल करता है। मुझे परीक्षण करने की ज़रूरत है जिसे इसे बुलाया गया था या नहीं था। मेरे परीक्षण मामले में मैं कंसोल को रोकने की कोशिश कर रहा था। चेतावनी लेकिन इससे मदद नहीं मिली। उसके बाद मैं कंसोल मैन्युअल रूप से नकल करने की कोशिश कर रहा था, यह या तो काम नहीं करता था।जेस्ट। किसी तीसरे पक्ष-पुस्तकालय द्वारा उपयोग किए जाने पर कंसोल का नकल कैसे करें?

console.warn = jest.fn(); 
testSchema('/app/components/Users/UserItem/UserItemContainer.js'); 
expect(console.warn).toBeCalled(); 

काम नहीं किया

console.warn = jest.fn(); 
testSchema('/app/components/Users/UserItem/UserItemContainer.js'); 
console.warn('error'); 
expect(console.warn).toBeCalled(); 

काम किया है। लेकिन मैं अभी भी टर्मिनल में console.warn node_modules/babel-relay-plugin/lib/getBabelRelayPlugin.js:138 देखता हूं। क्या कोई मेरी मदद कर सकता है?

उत्तर

16

आप वैश्विक संदर्भ

global.console = {warn: jest.fn()} 
expect(console.warn).toBeCalled() 

या का उपयोग jest.spyOn19.0.0

jest.spyOn(global.console, 'warn') 
+0

में जोड़ा क्या आपको यकीन है में वस्तुओं का उपयोग करने की global उपयोग करने के लिए है? अभी भी काम नहीं करता है। 'global.console = { चेतावनी: jest.fn(), त्रुटि: jest.fn(), }; testSchema ('/ ऐप/घटक/उपयोगकर्ता/उपयोगकर्ता इटैम/UserItemContainer.js'); उम्मीद (global.console.warn) .toBeCalled(); ' – Errorpro

+0

मैं इसे लॉगिंग कार्यक्षमता का परीक्षण करने के लिए उपयोग करता हूं, इसकी 'उम्मीद (console.warn) .toBeCalled()' कॉलिंग का परीक्षण करने के लिए। –

+2

हाँ दोस्तों यह काम करता है। लेकिन एक बात यह है कि ग्लोबल.कॉन्सोल घोषित करने के बाद आपको lib की आवश्यकता होगी। मैंने गलत किया मुझे अपनी मुक्ति की आवश्यकता थी और उसके बाद वैश्विक घोषित किया गया। धन्यवाद। – Errorpro

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