如何在Jest中测试使用browserify-shim全局变量的文件?

7

我正在通过脚本标签下载谷歌地图 API v3,并使用以下(相关的)package.json配置将其添加到我的模块中:

"browserify-shim": {
   "google": "global:google"
}

我可以通过以下方式在我的文件中添加依赖:

var google = require('google');

当我在浏览器中运行我的代码时,它可以正常工作。但问题是,当我使用Jest运行测试时,它告诉我找不到“google”模块。
Error: /src/app/assets/javascripts/__tests__/helpers-test.js: Cannot find module 'google' from '/src/app/assets/javascripts/__tests__'

注意:

这个依赖项是被我正在测试的文件所要求的,而不是测试本身。我觉得这很困惑,因为我认为 Jest 会模拟所有依赖项,除非另有说明,但从我看到的情况来看,它首先需要正确满足依赖关系才能进行模拟。

有什么想法或者应该采取什么方法吗?

1个回答

0

您需要在 package.json 文件中正确地为 'google' 进行别名设置,详见 这里


也许我对别名还有些不理解。在您提供的链接中,别名示例中使用了一个文件,但是Google Maps API是通过ascript标签加载的(我无法仅下载它,因为它只能通过更多的脚本标签下载缺失的组件)。 - aleandros

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接