2016-10-13 8 views
5

जासूस मैं एक घटक प्रतिक्रिया में निम्नलिखित समारोह:कैसे हंसी पर कई कॉल की जांच करने के

onUploadStart(file, xhr, formData) { 
    formData.append('filename', file.name); 
    formData.append('mimeType', file.type); 
} 

यह है कि, जो कम से कम जासूस कहा जा करने के लिए मिल अपने परीक्षण है।

const formData = { append: jest.fn() }; 
const file = { name: 'someFileName', type: 'someMimeType' }; 
eventHandlers.onUploadStart(file, null, formData); 

expect(formData.append).toHaveBeenCalledWith(
    ['mimeType', 'someMimeType'], 
    ['fileName', 'someFileName'] 
); 

लेकिन दावे काम नहीं कर रहा

Expected mock function to have been called with: 
[["mimeType", "someMimeType"], ["fileName", "someFileName"]] 
But it was called with: 
    ["mimeType", "someMimeType"], ["filename", "someFileName"] 

क्या toHaveBeenCalledWith

उत्तर

3

उपयोग करने के लिए सही तरीके से हस्ताक्षर, .toHaveBeenCalledWith(arg1, arg2, ...) वह जगह है जहाँ arg1, arg2, ... एक एकल कॉल (see) में इसका मतलब है।

यदि आप एकाधिक कॉल का परीक्षण करना चाहते हैं, तो यह कई बार expect है।

दुर्भाग्यवश, मुझे अभी तक कई कॉल के आदेश का परीक्षण करने के लिए कोई विधि नहीं मिली है।

expect(mockFn.mock.calls).toEqual([ 
    [arg1, arg2, ...], // First call 
    [arg1, arg2, ...] // Second call 
]); 

जहां mockFn है अपने मज़ाक उड़ाया समारोह का नाम:

+0

मुझे विश्वास है कि मैंने एक 'उम्मीद' का उपयोग करने के लिए संबोधित किया है (नीचे मेरा जवाब देखें)। – Andi

5

मैं तर्क इस तरह की जांच में सक्षम नकली एकाधिक कॉल था और।

+2

यह "सबसे अच्छा जवाब" होना चाहिए –

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