@automock/jest

中文文档
2.1.3发布于 2026/11/02MITTypeScriptCommonJS近 30 天下载 24.3万

Automock不再维持. 该项目继续作为 诉讼,一个以Automock最初设计为基础的积极开发的单位测试框架.

中文使用文档
文档目录8 节
  1. 支持结束
  2. 移徙
  3. 建议
  4. 已归档的自定义文档
  5. 核心特征
  6. :包装:安装
  7. : 计算机: 快例
  8. : 滚动: 许可证

Automock 现在为 suits

Automock不再维持. 该项目继续作为 诉讼积极发展的 基于Automock最初设计的单元测试框架.

支持结束

对 Automock 2.x 的支持结束于 2026年6月30日 (中文(简体) )。Automock不再接收错误修正或安全更新. 现有项目仍有已出版的版本。 所有新的发展都在继续.

移徙

迁移到 @ suites/ 单位 使用 移徙指南。 。 。 .

这个 官方代码 自动修改移动所需的许多代码 从 Automock v2 到 Suites v3 。 遵循指南更新您的依赖性,审查修改,并运行测试.

建议

  • 新用户 : 安装相机 .
  • 现有用户: 为持续维护和更新而迁移至Suites.

已归档的自定义文档

以下指令描述Automock 2.x,并保留用于现有项目.

Automock 通过提供虚拟、孤立环境和自动模拟,优化单位测试流程 生成,使开发者能够创建高效的测试套房并增强他们的整体测试经验.

Codecov Coverage ci

遗产文献

核心特征

🚀 Zero-Setup 模拟 - 自动生成模拟物体,取消手动设置,减少锅炉板代码.

🔍 安全模具类型 - 利用TypeScript的功率,其模拟器保留了与真实物体相同的类型.

📄 一致测试结构 - 测试套房将遵循一致的语法和结构,使其更容易 阅读和维护.

📈 最佳业绩 - 通过绕过实际的DI容器,单位测试运行速度明显快.

:包装:安装

为了将Automock完全纳入你的测试和依赖性注射框架, 您需要安装两个 软件包 : @automock/jest,以及相应的DI框架适配器.

  1. 安装 Automock 的 Jest 包 :
$ npm i -D @automock/jest
  1. 对于您的 DI 框架, 安装相应的 Automock 适配器( 作为 dev 依赖):
DI 框架软件包名称
网点JS@automock/adapters.nestjs
无效@automock/adapters.inversify

例如:

$ npm i -D @automock/jest @automock/adapters.nestjs

不需要进一步的配置.

: 计算机: 快例

举个例子:

考虑如下: UserService 类 :

export class Database {
  async getUsers(): Promise<User[]> { ... }
}

export class UserService {
  constructor(private database: Database) {}

  async getAllUsers(): Promise<User[]> {
    return this.database.getUsers();
  }
}

让我们为这门课创建单位测试:

import { TestBed } from '@automock/jest';
import { Database, UserService } from './user.service';

describe('User Service Unit Spec', () => {
  let userService: UserService;
  let database: jest.Mocked<Database>;

  beforeAll(() => {
    const { unit, unitRef } = TestBed.create(UserService).compile();
    userService = unit;
    database = unitRef.get(Database);
  });

  test('should return users from the database', async () => {
    const mockUsers: User[] = [{ id: 1, name: 'John' }, { id: 2, name: 'Jane' }];
    database.getUsers.mockResolvedValue(mockUsers);

    const users = await userService.getAllUsers();

    expect(database.getUsers).toHaveBeenCalled();
    expect(users).toEqual(mockUsers);
  });
});

随着使用 TestBed一个实例 UserService 可自动使用模拟对象创建类 为它的依赖性而生成。 在测试期间,我们可直接访问自动生成的模拟物体 页:1 Database 依赖性(数据库)。 通过刺穿 getUsers() 数据库模拟对象的方法,我们可以定义 它的行为,并确保它与一组特定的模拟用户解决.

Automock通过创建一个虚拟的DI容器来改进DI框架的现有单元测试程序. 那边 这是这一变化的一系列好处:

  • 速度 : 通过模拟测试环境中的实际DI容器,Automock会加快执行时间.

  • 效率: 因此,开发者能够集中精力写出测试逻辑,而不是与测试逻辑拼接 测试设置的复杂性.

  • 隔离 : 每个测试独立运行,并自动提供模拟执行,从而创建一个 简化和无干扰的测试环境.

: 滚动: 许可证

根据麻省理工学院的许可证分发。 见 LICENSE 更多信息.

版本与发布记录

@automock/jest 共发布 44 个版本,首次发布于 2022/02/26;过去 12 个月发布了 3 个版本。

版本发布日期距今
2.1.3latest2026/11/025 天前
2.1.22025/12/0311 个月前
2.1.12025/11/2911 个月前
2.1.02023/12/092 年前
2.1.0-alpha.0alpha2023/12/072 年前
2.0.02023/11/112 年前

其他发布通道:next → 1.2.0,beta → 2.0.0-beta.0,rc → 2.0.0-rc.0,dev → 2.0.0-dev.8,alpha → 2.1.0-alpha.0。

关于 @automock/jest 的常见问题

@automock/jest 是什么?

Automock不再维持. 该项目继续作为 诉讼,一个以Automock最初设计为基础的积极开发的单位测试框架.

如何安装 @automock/jest?

在项目目录运行 npm install @automock/jest,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:jest(^26 || ^27 || ^28 || ^29)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@automock/jest 支持 TypeScript 吗?

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

@automock/jest 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@automock/jest 需要什么版本的 Node.js?

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

@automock/jest 可以商用吗?

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

@automock/jest 的下载量有多少?

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

@automock/jest 还在维护吗?

最新版本 2.1.3 发布于 2026/11/02(5 天前);至今共发布 44 个版本,其中过去 12 个月发布了 3 个;首次发布于 2022/02/26。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。