Automock 现在为 suits
Automock不再维持. 该项目继续作为 诉讼积极发展的 基于Automock最初设计的单元测试框架.
支持结束
对 Automock 2.x 的支持结束于 2026年6月30日 (中文(简体) )。Automock不再接收错误修正或安全更新. 现有项目仍有已出版的版本。 所有新的发展都在继续.
移徙
迁移到 @ suites/ 单位 使用 移徙指南。 。 。 .
这个 官方代码 自动修改移动所需的许多代码 从 Automock v2 到 Suites v3 。 遵循指南更新您的依赖性,审查修改,并运行测试.
建议
- 新用户 : 安装相机 .
- 现有用户: 为持续维护和更新而迁移至Suites.
已归档的自定义文档
以下指令描述Automock 2.x,并保留用于现有项目.
Automock 通过提供虚拟、孤立环境和自动模拟,优化单位测试流程 生成,使开发者能够创建高效的测试套房并增强他们的整体测试经验.
核心特征
🚀 Zero-Setup 模拟 - 自动生成模拟物体,取消手动设置,减少锅炉板代码.
🔍 安全模具类型 - 利用TypeScript的功率,其模拟器保留了与真实物体相同的类型.
📄 一致测试结构 - 测试套房将遵循一致的语法和结构,使其更容易 阅读和维护.
📈 最佳业绩 - 通过绕过实际的DI容器,单位测试运行速度明显快.
:包装:安装
为了将Automock完全纳入你的测试和依赖性注射框架, 您需要安装两个
软件包 : @automock/jest,以及相应的DI框架适配器.
- 安装 Automock 的 Jest 包 :
$ npm i -D @automock/jest
- 对于您的 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 更多信息.