如何在 Jest 中加载全局脚本(<script src= " " >)



我需要在Jest中为单元测试提供一个JavaScript脚本作为全局脚本标记。我知道Jest使用jsdom,在jsdom中有一个api可以初始化DOM和加载脚本,但我似乎找不到在Jest中如何做到这一点的方法?

如果你不需要测试脚本本身,考虑到它是一个外部库,你不需要,你可以全局地模拟它。

首先,你需要设置一个jest setupFile,这个文件将在测试执行之前执行,那里可用的mock应该对每个测试文件都可用,为此,在package.json或更好的jest.config.js中写这样的东西

"jest": {
"setupFiles": [
"<rootDir>/jest/globals.js"
]
}

然后创建该文件并在那里编写全局mock。

现在你会说">‘嗯’?如何模拟通过标记脚本导入的外部库";好吧,我发现有用的是将导入的库包装在一个单独的模块中,这样你就可以在整个代码中使用包装器,而不是直接使用全局导入的外部库,这将使你有可能全局模拟所述模块,瞧,它完成了!

您可以简单地使用require来加载脚本。但是,请记住,脚本必须保存在本地。

require('relative/path/to/your/script')

这里有一些更有趣的信息:https://info343.github.io/jest.html

相关内容

最新更新