mcpField
R
react-testing-library

react-testing-library

github.com/shipshitdev测试与质量3890 次安装今天更新
代码仓库

关于 react-testing-library

面向使用 React Testing Library 编写和审查组件测试的开发者,提供按影响排序的 43 条规则。内容覆盖查询、异步处理、交互、断言及可访问性。

主要功能

  1. 01按影响排序的 43 条规则
  2. 02优先使用语义化查询
  3. 03处理异步测试操作
  4. 04指导用户交互模拟
  5. 05涵盖断言与无障碍测试

适用场景

  1. 01编写 React 组件测试
  2. 02选择合适的 DOM 查询
  3. 03检查测试中的反模式
  4. 04测试组件及 Hook

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/shipshitdev/skills --skill react-testing-library

安装后在 Claude Code 中输入/react-testing-library确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

plugin.json
README.md
assets/templates/
_template.md
references/
_sections.md
a11y-role-queries-verify.md
a11y-test-aria-states.md
a11y-verify-focus.md
anti-container-queries.md
anti-empty-waitfor.md
anti-implementation-details.md
anti-manual-cleanup.md
anti-redundant-roles.md
anti-unnecessary-act.md
assert-accessible-description.md
assert-dom-matchers.md
assert-have-value.md
assert-text-content.md
assert-visible-over-in-document.md
async-await-findby.md
async-findby-over-waitfor.md
async-no-side-effects-waitfor.md
async-single-assertion-waitfor.md
async-waitfor-disappear.md
debug-logroles.md
debug-screen-debug.md
debug-testing-playground.md
query-avoid-testid.md
query-get-vs-query.md
query-label-text-forms.md
query-prefer-role.md

详细介绍

React Testing Library 最佳实践

涵盖 9 个类别的 43 条规则,用于使用 Testing Library 测试 React 组件,并按影响排序,以指导编写测试和代码审查。

范围

本技能负责 React 组件和钩子的测试机制。对于与框架无关的问题——行为应在哪个层级测试、覆盖率数字的含义、如何选择测试数据、如何消除不稳定测试——请使用 testing-expert。

适用场景

  • 使用 React Testing Library 编写新的组件测试
  • 选择查询方法(getByRole、getByLabelText 等)
  • 处理测试中的异步操作(findBy、waitFor)
  • 模拟用户交互(userEvent)
  • 审查测试中的反模式和实现细节测试

按优先级划分的规则类别

优先级类别影响前缀
1查询选择关键query-
2异步处理关键async-
3常见反模式关键anti-
4用户交互高user-
5断言高assert-
6组件设置中setup-
7测试结构中struct-
8调试低至中debug-
9无障碍测试低a11y-

快速参考

1. 查询选择(关键)
2. 异步处理(关键)
3. 常见反模式(关键)
4. 用户交互(高)
5. 断言(HIGH)
6. 组件设置(MEDIUM)
7. 测试结构(MEDIUM)
8. 调试(LOW-MEDIUM)
9. 无障碍测试(LOW)

使用方法

阅读各个参考文件,了解详细说明和代码示例:

参考文件

文件说明
references/_sections.md类别定义和排序
assets/templates/_template.md新规则模板

评论

支持 Markdown