【问题标题】:react-testing-library why use test idreact-testing-library 为什么使用测试 id
【发布时间】:2019-08-04 16:13:52
【问题描述】:

我正在使用反应测试库。在文件中它说

请注意,将其用作通过类或 id 查询的逃生舱口是 不好的做法,因为用户无法看到或识别这些属性。采用 如果必须的话,可以提供一个testid。

我想知道为什么这是一个不好的做法。我不想用 data-testid 乱扔我的代码。我的组件中已经有了 ids 和 classNames。为什么不建议使用它们?

谢谢。

【问题讨论】:

标签: reactjs react-testing-library


【解决方案1】:

react-testing-library 主要用于黑盒功能测试。使用特定于实现的选择器可能意味着测试测试实现而不是用户可能观察到的行为。虽然使用data-testid 表示它是明确的,并且是为了使测试更容易而故意添加的,而选择器可能是不明确的,并且在更改实现时会意外更改。

这并不意味着如果常规选择器已经用于目的,则不应使用它们,只要开发人员不使用它们来测试功能测试中的实现即可。

这也不意味着react-testing-library 不能用于在独立的单元测试中测试实现。它实际上可以,但它缺乏必要的功能,因此与为此设计的 Enzyme 相比,这会导致大量样板代码。

【讨论】:

    【解决方案2】:

    好问题。从表面上看,这似乎没有多大意义,因为用户也无法看到或识别 testid。

    我会说它归结为尽量减少影响。如果您的测试代码按类或 id 查询,其他开发人员更有可能复制粘贴而不是使用 testid,这仅仅是因为您必须将 testid 添加到组件中,正如您所见,这感觉不对。使用 testid 表示“我这里没有好的选择,我不得不这样做”。

    【讨论】:

      猜你喜欢
      • 2019-05-21
      • 2019-11-11
      • 2023-04-04
      • 1970-01-01
      • 1970-01-01
      • 2019-08-29
      • 2021-11-30
      • 2019-06-14
      • 1970-01-01
      相关资源
      最近更新 更多