用途:让智能体在 Jest 测试中可控、可还原地模拟依赖,用于隔离网络、时钟、文件系统、数据库客户端或第三方模块(axios、fs、支付 SDK 等)。
主要能力:jest.fn 桩并控制返回值(mockReturnValue、mockResolvedValue、mockRejectedValue、mockReturnValueOnce);mockImplementation 按参数或序列给出行为;jest.mock 与工厂替换整个模块;jest.spyOn 包装真实方法并断言,可 stub 后恢复;partial mock 用 jest.requireActual 保留其余实现;jest.useFakeTimers 测试防抖/节流/setTimeout 代码;用 jest.mocked 获得类型化句柄。
核心规则:模拟边界,不模拟被测函数;测试间重置(clearMocks: true 或 beforeEach 中 jest.clearAllMocks());jest.mock 会被提升,工厂只能引用 mock 前缀的外部变量;只需覆盖单个方法时优先 spyOn + mockRestore;先断言结果再用 toHaveBeenCalledWith 断言交互。
适用场景:axios/fetch/HTTP 客户端模拟、jest.mock 工厂用法、异步返回值控制、保留真实实现的 spy、跨测试泄漏、jest.mock 中的 ReferenceError、模块部分模拟、假计时器测试。
限制:资料未说明支持的具体 Jest 版本、TypeScript 配置细节或与其他测试框架的兼容性;示例代码保持原样,未提供完整项目配置。