用途:在编写 Angular 应用测试时使用,包括单元测试、组件测试、服务测试和 E2E 测试,涉及 Jasmine、Karma、Vitest、Jest、Cypress 等工具。适用版本标注为 Angular 21(2025)。
版本相关 API 变更:Angular 21+ 默认使用 Vitest 取代 Jasmine/Karma;覆盖率报告现在包含 HTML 模板;支持直接用组件输入测试组件输入;函数式拦截器更易测试 HTTP 拦截器;Karma 测试运行器已弃用,建议迁移到 Vitest。
主要实践:使用 TestBed 进行组件测试,通过 TestBed.configureTestingModule 配置 imports 或 providers,再用 TestBed.createComponent 创建组件实例。采用 Arrange-Act-Assert(AAA)模式组织用例。异步操作使用 fakeAsync 与 tick。用 spyOn、jasmine.createSpy 等创建间谍或 mock 服务替代真实依赖。用 By.css 查询 DOM 元素,配合 fixture.detectChanges 触发变更检测,异步场景可 await fixture.whenStable()。HTTP 测试使用 provideHttpClient,并可配合 withInterceptors。表单校验测试通过 setValue 与 markAsTouched 后检测错误元素。建议测试行为而非实现细节,例如断言渲染结果而非私有方法调用。
限制:资料未提供安装命令、完整配置方式、价格或平台支持信息,暂未提供。具体用法需结合对应版本官方测试文档确认。