我正在main.test.js中使用babel-plugin-rewire(https://www.npmjs.com/package/babel-plugin-rewire)来测试main.js中未导出的功能。除在main.js中未引用该函数的情况外,此方法一直有效。在这种情况下,我会收到以下错误:TypeError:_get __(...)不是一个函数。
只有在main.js中添加对该函数的引用之后,我才可以在测试文件中访问它(即使我实际上没有调用该函数也可以使用)。但是我不想对main.js进行任何更改。这是babel-plugin-rewire的预期行为,并且有解决方法吗?
//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);
});
答案 0 :(得分:0)
您可以在main.js中测试未导出的函数,但是未导出的函数需要在同一文件中的至少一个导出的函数中使用。
在您的情况下,此方法无需参考即可。
//main.js
export default function foo() {
test123();
}
function test123() {
return true;
}