跳到主要内容

简介

问题

想要编写可维护的测试代码,希望它们可以增加你对组件正常工作的信心。为了实现此目标 , 您希望你的测试避免包含实现细节,以便组件的重构(对实现的更改但不是功能的更改 )时不会破坏原有的测试,进而减慢团队的开发速度。

解决方案

DOM Testing Library 是一个轻量级的解决方案,用于测试 DOM 节点(由 JSDOM/Jest模拟或真正的浏览器)。它提 供的查询 DOM 节点工具和真正用户在页面查找元素时相似的,从而提升你对 UI 代码的信 心。 DOM Testing Library 的第一指导原则是:

测试代码与你的软件使用方式越相似,它们能给你的信心就越大

作为该目标的一部分,该库提供的工具函数有助于实现以用户的方式来查询 DOM。通过标签 文本来查找表单上的元素 (就像用户那样),通过文本找到对应链接和按钮 (就像用户那样) 等等。当文本内容和标签不适用的情况下,它推荐使用 data-testid 作为 “逃生舱” 来 查找元素。

该库鼓励你的应用应该易于访问(无障碍访问),并让你的测试更接近你的组件被用户使用 ,从而让你对组件在用户手中正常工作更加有信心。

Testing Library 不是什么:

  1. 测试执行器 或 框架
  2. 特定的测试框架 (尽管我们推荐 Jest 作为首选项, 但是该库适用于其它框架. 参考 不使用 Jest)