如何在 Jest 中测试使用 browserify-shim global 的文件?
Posted
技术标签:
【中文标题】如何在 Jest 中测试使用 browserify-shim global 的文件?【英文标题】:How to test files that use browserify-shim global's in Jest? 【发布时间】:2015-06-28 23:49:15 【问题描述】:我正在通过脚本标签下载谷歌地图 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】:您需要在 package.json 中正确地为“google”起别名,请参阅here。
【讨论】:
也许我对别名有些不理解。在您提供的链接中,别名示例中使用了一个文件,但 google maps api 是通过 ascript 标签加载的(我不能只下载它,因为它只通过更多脚本标签下载缺少的组件)。以上是关于如何在 Jest 中测试使用 browserify-shim global 的文件?的主要内容,如果未能解决你的问题,请参考以下文章
如何从代码覆盖率数字中排除 browserify 生成的代码?
如何在 TypeScript 中使用 Jest 和 Knex 进行测试?