SuperAPI AI 工具集

angular-testing

前端与建站

查看项目

更新于 10-16 06:22

技能介绍

用途:为 Angular v20+ 应用编写单元测试与集成测试,重点覆盖基于 signal 的组件与现代测试模式,测试框架可选 Vitest(推荐)或 Jasmine。

主要能力:

  • Vitest 配置:Angular v20+ 通过 @angular/build 原生支持 Vitest,安装命令为 npm install -D vitest jsdom,并在 angular.json 中配置 @angular/build:unit-test 构建器。
  • 运行测试:ng test、ng test --watch、ng test --code-coverage。
  • 组件测试:使用 TestBed.configureTestingModule 与 ComponentFixture,支持独立组件导入、模板渲染断言。
  • 信号测试:直接测试 signal 与 computed,以及组件内信号状态与派生值。
  • OnPush 组件:通过 fixture.componentRef.setInput 设置信号输入并显式调用 detectChanges。
  • 服务测试:TestBed.inject 注入服务;HTTP 服务使用 provideHttpClient、provideHttpClientTesting 与 HttpTestingController,并用 httpMock.verify() 校验未完成请求。
  • 依赖模拟:使用 Vitest 的 vi.fn() 模拟服务方法,也可模拟基于 signal 的服务。
  • 输入输出:用 setInput 设置 input.required,订阅 output 事件验证发射值。
  • 异步测试:fakeAsync 配合 tick、flush,或 waitForAsync 配合 whenStable。
  • HTTP 资源:测试 httpResource 的加载与取值状态。

使用方式:按上述命令安装依赖并配置 angular.json,然后编写 describe/it 测试用例,通过 TestBed 创建组件或注入服务进行断言。

适用场景:Angular v20+ 项目的组件、服务、HTTP 交互、信号逻辑、OnPush 变更检测、异步流程与输入输出行为的测试。

限制:资料仅覆盖上述测试主题;组件 harness、路由测试、表单测试、指令测试及 Vitest 从 Jasmine 迁移的细节需参见其引用的参考文档,本资料未展开。未提供收费、价格或平台支持等信息。