【问题标题】:Testing-library: not picking up the match by text测试库:不通过文本获取匹配项
【发布时间】:2021-10-27 13:47:21
【问题描述】:

无论我使用什么 .getByText().toHaveTextContent(),我都无法选择我的 Dom 元素中的文本,如下所示:

<h4 data-testid={playerName + "_score"}>Total Score- {score || 0}</h4>

我在这里尝试按 ID 运行测试:

expect(screen.getByTestId("Vaibhav_score")).toHaveTextContent('Total Score- 0')

不是当我看到浏览器时,我看到的是两行,例如:

Total Score-
0

在测试控制台中类似:

 <div>
     <h4 data-testid="Vaibhav_score" >
                            Total Score-
                            0
     </h4>
 </div>

有人可以帮我找出问题吗?

【问题讨论】:

    标签: reactjs testing jestjs react-testing-library testing-library


    【解决方案1】:

    这可能是因为文本是针对字符串呈现的。为什么不,你最好尝试一下:

    expect(screen.getByTestId("Vaibhav_score")).toHaveTextContent(/^Total Score- 0/)
    
    

    此外,通过测试 ID 检索不应该是您的首选。也许更好的测试方法是:

    expect(screen.getByText(/^Total Score-/)).toHaveTextContent(/^Total Score- 0/)
    
    

    如果有帮助请告诉我

    【讨论】:

      猜你喜欢
      • 2021-04-19
      • 1970-01-01
      • 2017-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-21
      • 2015-12-30
      • 2017-06-26
      相关资源
      最近更新 更多