# @automock/jest 中文文档

规范地址：https://npmcn.com/package/%40automock/jest/

版本：2\.1\.3
npm 元数据更新时间：2026-11-02T14:24:49.432Z
中文译文更新时间：2026-11-07T06:59:28.638Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40automock/jest
原文对照：https://npmcn.com/package/%40automock/jest/?lang=original
项目主页：https://suites.dev/
源码仓库：https://github.com/suites-dev/unit

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：16.6 kB，9 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- Node.js 要求：^16\.10\.0 \|\| ^18\.12\.0 \|\| \>=20\.0\.0
- 运行依赖：2 个
- peer 依赖：jest ^26 \|\| ^27 \|\| ^28 \|\| ^29
- 首次发布：2022-02-25T21:57:28.179Z
- 最新版本发布：2026-11-02T14:24:49.119Z
- 近 30 天下载量：243410（2026-10-07 至 2026-11-05，npm 官方下载统计）
- 已发布版本数：44（近 12 个月 3 个）

## 中文简介

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

## 安装

```sh
npm install @automock/jest
```

也可以使用：`pnpm add @automock/jest`、`yarn add @automock/jest`、`bun add @automock/jest`

## README

# Automock 现在为 suits

Automock不再维持. 该项目继续作为 [诉讼](https://suites.dev/)积极发展的 基于Automock最初设计的单元测试框架.

## 支持结束

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

## 移徙

迁移到 [@ suites/ 单位](https://www.npmjs.com/package/@suites/unit) 使用 [移徙指南](https://suites.dev/docs/migration-guides/from-automock/)。 。 。 .

这个 [官方代码](https://github.com/suites-dev/codemod) 自动修改移动所需的许多代码 从 Automock v2 到 Suites v3 。 遵循指南更新您的依赖性,审查修改,并运行测试.

## 建议

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

## 已归档的自定义文档

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

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

[![Codecov Coverage](https://img.shields.io/codecov/c/github/automock/automock/master.svg?style=flat-square)](https://codecov.io/gh/automock/automock) [![ci](https://github.com/automock/automock/actions/workflows/set-coverage.yml/badge.svg?branch=master)](https://github.com/automock/automock/actions)

[遗产文献](https://github.com/suites-dev/unit/tree/master/docs/automock)

## 核心特征

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

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

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

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

## :包装:安装

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

1.  安装 Automock 的 Jest 包 :

```bash
$ npm i -D @automock/jest
```

2.  对于您的 DI 框架, 安装相应的 Automock 适配器( 作为 dev 依赖):

| DI 框架 | 软件包名称 |
| --- | --- |
| 网点JS | `@automock/adapters.nestjs` |
| 无效 | `@automock/adapters.inversify` |

例如:

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

不需要进一步的配置.

## : 计算机: 快例

举个例子:

考虑如下: `UserService` 类 :

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

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

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

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

```typescript
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 是什么？

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 和提交记录判断。

