我有一个像这样的简单 JavaScript 文件:
// sum.js
function sum(a, b) {
return a + b;
}
export default { sum };
我想在同一文件夹中用 jest 测试该文件,如下所示:
// sum.test.js
const { sum } = require('./sum')
test('adds 1 + 2 to equal 3', () => {
expect(sum(1, 2)).toBe(3);
});
测试失败了,但是如果我导出为 module.exports = sum;
而不是 export default { sum };
,一切都会完美,但我不允许更改原始js文件,所以我只能更改测试文件。在这种情况下我怎样才能成功完成测试?
我尝试过的解决方案(但失败的如下)
const { sum } = require('./sum').default
const { sum } = require('./sum').default()
从“./sum”导入 { sum}
最佳答案
将默认导出设置为具有单个属性的对象是非常奇怪的,因为这意味着访问其中的值将至少两行。首先使用不带括号的 import
来获取对象,然后从中提取属性:
import sumObj from './sum';
const { sum } = sumObj;
看起来有点丑。理想情况下,您希望将 sum.js
文件更改为具有命名导出 - 例如,使 sum
成为命名导出,以便可以轻松导入它:
export function sum(a, b) {
import { sum } from './sum';
(但是,如果您无法更改原始文件,那就很遗憾了)
关于javascript - 如何测试默认导出的js文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59595892/