测试
React Strict DOM 依赖于大量的测试以及跨平台的大量测试覆盖率。
公共 API 测试
公共 API 是默认的测试表面。这使得项目能够快速地整合大量的底层更改,同时最大限度地减少回归。
默认情况下,Jest 单元测试针对 **web 和 native** 运行。特定于平台的测试定义如下
- 带有
*.dom.js
的文件仅在 web (jsdom) 上运行。 - 带有
*.native.js
扩展名的文件仅使用 React Native 模拟 (Node.js) 运行。 - 带有
*.node.js
扩展名的文件仅使用 Node.js 运行。
React Strict DOM 严重依赖于快照测试来监控在 web 和 native 上渲染的树。
内部 API 测试
某些内部 API 可能需要额外的测试覆盖率。 使用与内部模块位于同一位置的 __tests__
目录。
视觉回归测试
Expo 应用程序是 React Strict DOM 端到端开发者和用户体验的试验台。 它用于手动检查潜在的视觉和行为回归。
Expo 目前缺乏对 React Strict DOM 的内置集成,但该应用程序的目标是推动 Expo 和 Metro 的改进,以便将来可以更轻松地构建和部署新的跨平台应用程序。
性能基准测试
还会监控 web 和 native 上的捆绑包大小是否存在回归。 原生平台的 polyfill 也要进行性能监控。 目前,只有样式 polyfill 在 Node.js 中进行回归基准测试,运行在 jitless 模式下,以更好地模拟 React Native 使用的 Hermes 运行时。 这些基准测试会自动运行并报告给 GitHub 上提交的每个 Pull Request。