使用babel-plugin-rewire测试私有非引用功能

我正在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);
});
zdh6189664 回答:使用babel-plugin-rewire测试私有非引用功能

您可以在main.js中测试未导出的函数,但是未导出的函数需要在同一文件中的至少一个导出的函数中使用。

在您的情况下,此方法无需参考即可。

//main.js
export default function foo() {
   test123();
}
function test123() {
    return true;
}
本文链接:https://www.f2er.com/3047859.html

大家都在问