मैं बैबेल-प्लगइन-रीवायर का उपयोग कर रहा हूं (https://www.npmjs.com/package /babel-plugin-rewire) main.test.js में main.js में गैर-निर्यातित कार्यों का परीक्षण करने के लिए। यह उस मामले को छोड़कर काम कर रहा है जहां फ़ंक्शन को main.js में संदर्भित नहीं किया गया है; इस मामले में मुझे निम्न त्रुटि मिलती है: TypeError: _get__(...) कोई फ़ंक्शन नहीं है।

Main.js में फ़ंक्शन का संदर्भ जोड़ने के बाद ही मैं इसे परीक्षण फ़ाइल में एक्सेस करने में सक्षम हूं (यह तब भी काम करता है जब मैं वास्तव में फ़ंक्शन को कॉल नहीं करता)। हालांकि मैं main.js में कोई बदलाव नहीं करना चाहता। क्या यह बेबेल-प्लगइन-रीवायर का अपेक्षित व्यवहार है, और क्या इसके लिए कोई समाधान है?

//main.js
function test123() {
    return true;
}
test123; //Cannot access function in test file unless I add this reference!

//main.test.js
const test123 = require('./main').__get__('test123');

test('test123', () => {
  expect(test123()).toEqual(true);
});
2
robynl88 23 नवम्बर 2019, 01:23

1 उत्तर

आप main.js में गैर-निर्यात किए गए फ़ंक्शन का परीक्षण कर सकते हैं, लेकिन गैर-निर्यात किए गए फ़ंक्शन को उसी फ़ाइल में कम से कम एक निर्यात किए गए फ़ंक्शन में उपयोग करने की आवश्यकता है।

आपके मामले में, यह बिना किसी संदर्भ के काम करेगा।

//main.js
export default function foo() {
   test123();
}
function test123() {
    return true;
}
0
antonjs 14 अप्रैल 2020, 16:34