reactjs - react-testing-library 为什么使用测试ID
问题描述
我正在使用反应测试库。在文件中它说
请注意,将其用作按类或 id 查询的逃生舱口是一种不好的做法,因为用户无法看到或识别这些属性。如果必须,请使用 testid。
我想知道为什么这是一个不好的做法。我不想用 data-testid 乱扔我的代码。我的组件中已经有 ids 和 classNames。为什么不建议使用它们?
谢谢。
解决方案
react-testing-library
主要用于黑盒功能测试。使用特定于实现的选择器可能意味着测试测试实现而不是用户可以观察到的行为。虽然使用data-testid
指定它是明确的并且是故意添加以使测试更容易,而选择器可能是不明确的并且在更改实现时会意外更改。
这并不意味着如果常规选择器已经达到目的,则不应使用它们,只要开发人员不使用它们来测试功能测试中的实现即可。
这也不意味着它react-testing-library
不能用于在独立的单元测试中测试实现。它实际上可以,但它缺乏必要的功能,因此与为此设计的 Enzyme 相比,这会导致大量样板代码。
推荐阅读
- laravel - 带有中间表的 Laravel 工厂
- excel - 使用组合框 VBA 中的选项抓取网站数据
- javascript - JavaScript 和 PHP 中的双向服务器/客户端通信
- bash - 使用 kubectl 通过 bash 脚本在 postgres 中插入 json
- r - 对数据进行子集化并创建一个显示最佳分布的图表
- angular - 在不请求 API 的情况下检查令牌过期
- javascript - Discord.JS 排行榜
- go - 检测 goroutine 是否已经在运行
- ruby-on-rails - ActionText 正文的值始终为“”(空字符串)
- c - 此结构分配代码中的“xillybus_of_match[]”术语是什么意思?