jest-mock

中文文档
30.5.2发布于 2026/09/18MITTypeScriptESM + CJS近 30 天下载 3.1亿

说明: 用户端 API 的更多细节可见于 最佳文档。 。 。 .

中文使用文档
文档目录5 节
  1. API 密码
  2. constructor(global)
  3. generateFromMetadata(metadata)
  4. getMetadata(component)
  5. fn(implementation?)

鸡尾酒

说明: 用户端 API 的更多细节可见于 最佳文档。 。 。 .

API 密码

import {ModuleMocker} from 'jest-mock';

constructor(global)

创建一个新的模块模拟器,生成模拟器,仿佛它们是在与给定的全局对象一起的环境里创建的.

generateFromMetadata(metadata)

基于给定的元数据生成一个模拟( 用于模拟的元数据 ) getMetadata() 本单元的方法)。 模拟函数特别处理函数,所有模拟函数都有额外的成员,在文档中描述 fn() 本单元中.

一个重要的注意:功能原型由这个嘲弄框架专门处理. 对于有原型的功能,被叫作构造器时,模型会以实例安装被模拟的功能成员. 这允许同一构造器的不同实例对其模拟成员及其返回值具有不同的值.

getMetadata(component)

检查参数,并以下列递归格式返回其方案:

{
  type: ...
  members: {}
}

类型之一 array, (中文(简体) ), object, (中文(简体) ), function,或 ref,而成员是一个可选词典,其中密钥为成员名而值为元数据对象. 函数原型通过定义元数据定义 member.prototype 函数。 函数原型的型号应该总是 object例如,一个类别可以这样定义:

const classDef = {
  type: 'function',
  members: {
    staticMethod: {type: 'function'},
    prototype: {
      type: 'object',
      members: {
        instanceMethod: {type: 'function'},
      },
    },
  },
};

元数据也可能包含对同一元数据对象所定义的其他对象的引用. 参考方的元数据必须标明 refID 键和任意值。 裁判员必须用 ref 键,其值与它所指的重置ID对象相同。 例如,这个元数据blob:

const refID = {
  type: 'object',
  refID: 1,
  members: {
    self: {ref: 1},
  },
};

定义带有槽的对象 self 指的是对象.

fn(implementation?)

与帮助驱动单位测试或确认预期的成员生成独立的功能. 具体地说,通过这种方法返回的职能成员如下:

.mock

有三名成员的天体, calls, (中文(简体) ), instances 财务报告和审定财务报表 invocationCallOrder,这些都是列表。 二、《公约》项目 calls 列表是函数被调用的参数。 "Intances"列表存储每个调用函数的"This"值. 这对于从构建者那里获取实例是有用的 。 这个 invocationCallOrder 从 1 开始, 列出模拟调用所有模拟调用的顺序 .

.mockReturnValueOnce(value)

将给定值推入函数返回值的 FIFO 队列.

.mockReturnValue(value)

设置函数的默认返回值.

.mockImplementationOnce(function)

将给定的模拟执行推入函数模拟执行的 FIFO 队列.

.mockImplementation(function)

设置函数的默认模拟执行.

.mockReturnThis()

用于:

mockFn.mockImplementation(function () {
  return this;
});

以防两者皆有 .mockImplementationOnce() 编号 : .mockImplementation() 财务报告和审定财务报表 .mockReturnValueOnce() 编号 : .mockReturnValue() 被调用。 优先使用的依据是最后的呼叫:

  • 如果最后的电话是 .mockReturnValueOnce() 或者说 .mockReturnValue(),使用特定返回值或默认返回值。 如果使用特定返回值, 或者没有设置默认返回值, 请倒回尝试 .mockImplementation()· ;
  • 如果最后的电话是 .mockImplementationOnce() 或者说 .mockImplementation(),运行特定执行并返回结果或运行默认执行并返回结果.
.withImplementation(function, callback)

暂时地在回调中推翻了默认的模拟执行,再恢复之前的执行.

如果回调为 Aync 或返回 a thenable, (中文(简体) ), withImplementation 将返回一个承诺。 等待承诺将等待召回并重新确定执行.

版本与发布记录

jest-mock 共发布 255 个版本,首次发布于 2016/03/17;过去 12 个月发布了 6 个版本。

版本发布日期距今
30.5.2latest2026/09/181 个月前
30.5.12026/09/012 个月前
30.5.02026/08/282 个月前
30.4.12026/05/086 个月前
30.4.02026/05/086 个月前
30.3.02026/03/107 个月前

其他发布通道:next → 30.0.0-rc.1。

关于 jest-mock 的常见问题

jest-mock 是什么?

说明: 用户端 API 的更多细节可见于 最佳文档。 。 。 .

如何安装 jest-mock?

在项目目录运行 npm install jest-mock,或使用 pnpm add / yarn add / bun add。

jest-mock 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

jest-mock 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

jest-mock 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

jest-mock 可以商用吗?

jest-mock 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

jest-mock 的下载量有多少?

根据 npm 官方下载统计,jest-mock 在 2026/10/07 – 2026/11/05 这 30 天内被下载 312,301,743 次,日均约 10,410,058 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

jest-mock 还在维护吗?

最新版本 30.5.2 发布于 2026/09/18(1 个月前);至今共发布 255 个版本,其中过去 12 个月发布了 6 个;首次发布于 2016/03/17。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。