用途:为 CometChat Angular UI Kit 集成提供测试方案,覆盖两种单元测试运行器(Karma、Jest)与 Cypress 端到端测试,并针对 NgZone 驱动的组件给出 TestBed 模式。
主要能力:对比 Karma 与 Jest 的适用取舍;给出 Jest 安装与配置命令,如 npm install -D jest @types/jest jest-preset-angular @angular-builders/jest 与 ng add @angular-builders/jest;演示 TestBed 中通过 CUSTOM_ELEMENTS_SCHEMA 忽略 <cometchat-*> 选择器;用 fakeAsync 与 tick 处理 SDK 在 Angular 区域外触发的回调;提供对 @cometchat/chat-uikit-angular 的桩组件与模块级 mock(Jest 可用 moduleNameMapper 别名);覆盖 Angular 14+ 独立组件的导入方式;给出 Cypress 安装、配置与登录、发消息的冒烟用例;附 CI 配置与验证清单。
使用方式:既有项目默认沿用 Karma,新项目可选用 Jest;测试中需 mock CometChatInitService,避免使用真实服务与硬编码 App ID。
限制:Cypress 不原生支持多窗口双用户聊天测试,需改用 Playwright;Karma 在 CI 中必须加 --watch=false --browsers=ChromeHeadless,否则会挂起。该技能未提供收费、价格或平台信息。