单独跑某个测试是通过的,怎么全部一起跑就挂了呢

  1. 你是否遇到过单独跑test case 3是通过的,但是全部整个文件一起跑就挂了呢

  2. 你的第一反应是前面的某个依赖项影响到test case 3了

  3. 于是你在最前面写下了

    |-------|--------------------------------------------------|
    | 1 2 3 | afterEach(() => { ``jest.clearAllMocks }) |

  4. 重新跑测试文件,仍然是挂的

Note: clearAllMocks并不能解决所有的mock

Jest中关于清除和重置mock的方法有以下这些,他们为不同的mock做清扫工作

jest.clearAllMocks()

  • 清除存储在mock.calls,mock.instances,mock.context,mock.results.
  • 这种场景一般是同一个方法被call了几次,每次的数据或者参数都不一样
  • 注意:调用这个方法会替换掉mockFn.mock

jest.resetAllMocks()

  • 重置所有mock的状态。
  • 适用于有状态变更的测试场景

jest.restoreAllMocks()

  • 恢复所有的mock和替换属于的值为初始值
  • 注意:此方法只作用mock了jest.spyOn()方法和属性替换用了jest.replaceProperty().其他的mock需要手动恢复

jest.resetModuls()

  • 重置module的注册
复制代码
|-----------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 | `const sum1 = require(``'../sum'``);` `jest.resetModules();` `const sum2 = require(``'../sum'``);` `sum1 === sum2;` `// > false (Both sum modules are separate "instances" of the sum module.)` |
  • 也可以用 isolateModulesAsync

jest.clearAllTimers()

复制代码
#### `移除任何待办的计时器`
相关推荐
工控丫丫20 分钟前
帆软看板中经常使用的公式函数及经常搭的组合
前端·javascript·数据库
jerrywus41 分钟前
我用 GPT-6.1-sol 做了台会讲解的 3D 售货机:60 罐饮料,一口没喝上
前端·agent·claude
孟陬2 小时前
Foobar 技术周刊#159:当看不懂代码时,如何高效排障调试。脏页陷阱:一条只读查询,写入数 TB 数据。推测解码:大模型加速利器
前端·人工智能·后端
Zhao-Jichao2 小时前
AI Prompting for Everyone 课程笔记 - P17 图像生成 Imaging Generation
前端
Highcharts.js3 小时前
智能数据分析组件Orbit 正式发布与快速上手体验教程
前端·人工智能·信息可视化·数据分析系统·highcharts·orbit·智能可视化
螺丝钉tina3 小时前
[Playwright ][16]Playwright + TypeScript API 自动化测试实战:API测试
前端·javascript·typescript
小天源4 小时前
智叟云集系统 · 架构与职责分层
服务器·前端·数据库
Highcharts.js6 小时前
React 中原生支持使用 JSX 组件配置自定义表格 Highcharts Grid
前端·javascript·react.js·前端框架·jsx·highcharts·自定义表格
薛定谔的猫-菜鸟程序员6 小时前
Electron开发超详细教程(从入门到放弃)
前端·javascript·electron
最强小杰6 小时前
DeepSeek V4 Flash + Codex CLI 接入教程:原生 Responses API 适配,从配置到跑通收藏这篇就够了(2026)
java·前端·python·ai