reactjs - 使用角色、testid 和类名反应渲染测试
问题描述
我正在尝试测试反应渲染。据我所知,有几种方法可以找到我定义的元素。
- 角色
- 测试编号
- 班级名称
- 查询选择器
我什么时候应该定义类名的“角色”或“测试ID”实例,角色和测试ID有什么区别?
解决方案
角色和测试ID有什么区别?
Arole
是用于可访问性和语义 html 结构的 html 属性。
test-id
是用于挂钩到特定 DOM 节点以进行测试的特殊 id。它们通常是一个data-X
属性,即data-testid="test"
,但也可以是id
某些测试库的普通属性。
您应该主要将角色用作应用程序可访问性策略的一部分,而不是用于测试。
我什么时候应该定义类名的“角色”或“测试ID”实例?
react-testing-library
查询备忘单
我应该使用什么查询?
根据指导原则,您的测试应尽可能类似于用户与您的代码(组件、页面等)的交互方式。考虑到这一点,我们推荐以下优先顺序:
- 每个人都可以访问的查询(标签/占位符文本、咏叹调角色、文本和显示值)
- 语义查询(符合 HTML5 和 ARIA 的选择器)
- 测试 ID 手动查询容器 (
container.querySelector
)
推荐阅读
- node.js - 使用节点 js 和 mongodb 遍历对象数组
- react-native - 同时使用 StackNavigator 和 BottomTabNavigator
- javascript - 提交表单时,如何为空的材质 UI 文本字段提供 null 值,而不是空字符串?
- javascript - 在猫鼬中更新模型时未设置属性
- java - 如何在 log4j2.xml 文件中查找 Spring applications.yml 文件中声明的变量?
- dojo - dojo date 方法的行为不一致
- python - 类型错误:| 不支持的操作数类型:“str”和“str”
- bash - 制作一个可以更改 Mac 上日期的终端可执行文件
- python - 基于 Python 的 DNS 流量嗅探器
- linux - 使用 grep -E 过滤带有特殊符号的行?