SuperAPI AI 工具集

cometchat-react-v7-testing

测试与质量

查看项目

更新于 10-21 20:28

技能介绍

用途

该技能用于指导如何为嵌入了 CometChat v7 的 React 应用编写测试。它明确一个前提:你测试的是自己的代码,而不是 CometChat 组件库本身。因此它把测试范围划分为三层,并给出每层应采用的策略。

主要能力

技能提供以下测试指导:

  • 分层测试策略:将测试分为业务逻辑(令牌获取、UID 映射、路由、状态)、接线层(初始化与登录后界面是否挂载、props 是否正确传递)、真实往返(发送→接收)三层,分别对应单元测试、带测试 provider 的渲染测试和轻量 E2E。
  • SDK mock 示例:给出 mock @cometchat/chat-sdk-javascript 与 @cometchat/chat-uikit-react 两个入口模块的代码,确保单元测试不触网、不发起真实登录。示例使用 Vitest 的 vi.mock,并说明 Jest 下替换为 jest。
  • 异步渲染等待:说明组件库界面只有在 init 与 login 完成后才挂载,测试必须等待该门槛,推荐使用 findBy* 等异步查询而非同步的 getBy*,并建议用 CometChatErrorBoundary 包裹界面,使抛出的错误表现为可测试的 fallback。
  • E2E 冒烟测试:建议用 Playwright 针对真实测试应用(预置用户、仅测试环境使用的 dev Auth Key)覆盖一条高价值路径:加载应用、登录、断言会话列表渲染并发送消息。断言应基于可见文本与角色,而非组件库的 BEM 类名。
  • 明确不值得自动化的内容:组件库内部、穷举 props 矩阵、实时通话与推送(依赖设备)、组件库 UI 的像素快照(会随小版本变动而频繁失效)。
  • 常见陷阱提示:初始化完成前的同步断言会导致不稳定;断言组件库 DOM 类名会随版本变化;单元测试中真实登录不可取,且测试 Auth Key 绝不能进入生产环境文件;StrictMode 双调用要求 mock 幂等。

使用方式

技能本身不是常规构建流程的一部分,仅在明确要求编写测试时使用。使用时应先阅读配套技能 cometchat-react-v7-core,因为测试所覆盖的 init→login→render 生命周期由该技能定义。组件与方法名称来自 cometchat-react-v7-core 及其目录,签名通过 cometchat-react-v7-core/references/docs-map.md 获取。

适用场景

适用于为 CometChat 集成添加测试,或回答“如何测试这个”的问题。典型场景包括:验证自己的令牌获取与错误处理逻辑、验证初始化门槛后的界面挂载与 props 传递、以及针对测试应用做登录与消息收发的端到端冒烟验证。

限制

UI Kit 文档没有专门的测试页面,本技能内容属于该技能包自身的指导(已标记为文档缺口)。不得断言组件库内部的 DOM 类名,因为它们不是公开契约。技能不覆盖组件库内部测试、穷举 props、实时通话与推送、像素快照等。关于具体收费、价格、平台支持范围等信息,资料中暂未提供。