从 v28 升级到 v29
非官方测试版翻译
本页面由 PageTurner AI 翻译(测试版)。未经项目官方认可。 发现错误? 报告问题 →
正在将 Jest 从 v28 升级到 v29?本指南将帮助您重构配置和测试。
信息
完整变更列表请参阅更新日志。
备注
需要从更早版本升级?可在此处查看v27 到 v28 的升级指南。
兼容性
支持的 Node 版本为 14.15、16.10、18.0 及以上。
快照格式
正如在Jest 28 博客文章中预告的,Jest 29 已将默认快照格式改为 {escapeString: false, printBasicPrototype: false}。
如需保留旧行为,可将 snapshotFormat 属性设置为:
+ snapshotFormat: {
+ escapeString: true,
+ printBasicPrototype: true
+ }
JSDOM 升级
jest-environment-jsdom 已将 jsdom 从 v19 升级到 v20。
信息
若使用 jest-environment-jsdom,最低 TypeScript 版本要求为 4.5。
值得注意的是,jsdom@20 支持了 crypto.getRandomValues(),这意味着在 Jest@28 中无法正常工作的 uuid、nanoid 等包现在无需额外 polyfill 即可运行。
pretty-format
pretty-format 包中的 ConvertAnsi 插件已被移除,改用 jest-serializer-ansi-escapes。
jest-mock
jest-mock 包中的 Mocked* 工具类型导出方式已变更:MaybeMockedDeep 和 MaybeMocked 现在分别导出为 Mocked 和 MockedShallow;仅保留 MockedClass、MockedFunction 和 MockedObject 的深度模拟变体。