@atomic-testing/react-18

中文文档
0.104.0发布于 2026/08/20MITTypeScriptESM + CJS构建来源已验证近 30 天下载 3225

用于整合的适应器 原子试验 与 反应 18它将反演组件映射到核心场景部分 API.

中文使用文档
文档目录5 节
  1. 问题
  2. 解决办法
  3. 安装
  4. 示例
  5. 公共 API 稳定性

@ 原子测试/反应 18

用于整合的适应器 原子试验 与 反应 18。 。 。 . 它将 React 组件映射到核心场景部分 API.

问题

用第三方组件库构建的 UIs 写入可维护测试 比如材料UI或"靴子"可能很棘手. 关于如何测试的文件 通常缺乏与这些组件的通信,因此测试很容易结束 结合执行细节。 随着申请的增长 你需要你的 测试在不不断重新工作的情况下进行.

解决办法

原子试验 提供与第三方和 跨越不同测试环境的第一党组件。 重点是 可续用性, (中文(简体) ), 可替换性 财务报告和审定财务报表 适应性,让你建造 高级测试策略,既适用于DOM,也适用于终端测试.

安装

npm install @atomic-testing/core @atomic-testing/react-18 --save-dev

参见 反应整合指南 用于实例.

示例

如果您使用MUI/Matrial UI组件,请查看 @ 原子测试/组件- 司机- mui- v7 用于指定示例的软件包.

  1. 与此 React 适配器一起安装核心库和基本的 HTML 驱动程序 :

    npm install @atomic-testing/core @atomic-testing/react-18 @atomic-testing/component-driver-html --save-dev
    
  2. 创建小组件并指定 data-testid 与您想要与元素交互的值 :

    import { useState } from 'react';
    
    export function Counter() {
      const [count, setCount] = useState(0);
      return (
        <div>
          <span data-testid='count'>{count}</span>
          <button data-testid='increment' onClick={() => setCount(c => c + 1)}>
            Increment
          </button>
        </div>
      );
    }
    
  3. 定义 a ScenePart 使用 HTML 驱动程序描述计数显示和按钮 :

    import { HTMLButtonDriver, HTMLElementDriver } from '@atomic-testing/component-driver-html';
    import { byDataTestId, ScenePart } from '@atomic-testing/core';
    
    export const counterScenePart = {
      count: { locator: byDataTestId('count'), driver: HTMLElementDriver },
      increment: { locator: byDataTestId('increment'), driver: HTMLButtonDriver },
    } satisfies ScenePart;
    
  4. 使用 createTestEngine 使该组成部分成为组成部分并与它相互作用:

     import { createTestEngine } from '@atomic-testing/react-18';
    
     import { Counter } from './Counter';
     import { counterScenePart } from './counterScenePart';
    
     test('increments when the button is clicked', async () => {
       const engine = createTestEngine(<Counter />, counterScenePart);
    
       expect(await engine.parts.count.getText()).toBe('0');
       await engine.parts.increment.click();
       expect(await engine.parts.count.getText()).toBe('1');
    
       await engine.cleanUp();
     });
    

更深入的信息,访问 https://原子测试.dev。 。 。 .

公共 API 稳定性

这个包的稳定表面是它的 . 桶出口,在 由被害者进行机器检查 API 提取器 报告 etc/react-18.api.md。标记的出口 @internal 为: 不是保证的一部分。 见 1.0 API 冻结和演变政策。 。 。 .

版本与发布记录

@atomic-testing/react-18 共发布 30 个版本,首次发布于 2025/06/18;过去 12 个月发布了 22 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.104.0latest2026/08/202 个月前
0.103.02026/08/182 个月前
0.102.02026/08/172 个月前
0.101.02026/08/073 个月前
0.100.02026/08/023 个月前
0.99.02026/07/223 个月前

关于 @atomic-testing/react-18 的常见问题

@atomic-testing/react-18 是什么?

用于整合的适应器 原子试验 与 反应 18它将反演组件映射到核心场景部分 API.

如何安装 @atomic-testing/react-18?

在项目目录运行 npm install @atomic-testing/react-18,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@testing-library/dom(>=10.4.1)、@testing-library/react(>=16.2.0)、@testing-library/user-event(>=14.0.0)、react(>=18.0.0 <19.0.0)、react-dom(>=18.0.0 <19.0.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@atomic-testing/react-18 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@atomic-testing/react-18 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@atomic-testing/react-18 可以商用吗?

@atomic-testing/react-18 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@atomic-testing/react-18 的下载量有多少?

根据 npm 官方下载统计,@atomic-testing/react-18 在 2026/10/07 – 2026/11/05 这 30 天内被下载 3,225 次,日均约 108 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@atomic-testing/react-18 还在维护吗?

最新版本 0.104.0 发布于 2026/08/20(2 个月前);至今共发布 30 个版本,其中过去 12 个月发布了 22 个;首次发布于 2025/06/18。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。