亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用反應測試庫檢查文本是否出現在元素內

使用反應測試庫檢查文本是否出現在元素內

慕桂英546537 2022-01-07 11:07:23
我正在使用Testing Library為 React 應用程序編寫一些測試。我想檢查是否出現了一些文本,但我需要檢查它是否出現在特定位置,因為我知道它已經出現在其他地方。查詢的測試庫文檔說getByText查詢需要一個container參數,我猜它可以讓您在該容器中搜索。我嘗試這樣做,container并text按照文檔中指定的順序使用and參數:const container = getByTestId('my-test-id');expect(getByText(container, 'some text')).toBeTruthy();我得到一個錯誤:matcher.test is not a function。如果我把參數反過來:const container = getByTestId('my-test-id');expect(getByText('some text', container)).toBeTruthy();我得到一個不同的錯誤: Found multiple elements with the text: some text這意味著它不在指定的容器內搜索。我想我不明白它是如何getByText工作的。我究竟做錯了什么?
查看完整描述

2 回答

?
智慧大石

TA貢獻1946條經驗 獲得超3個贊

最好within用于此類事情:


const { getByTestId } = render(<MyComponent />)

const { getByText } = within(getByTestId('my-test-id'))

expect(getByText('some text')).toBeInTheDocument()


查看完整回答
反對 回復 2022-01-07
?
幕布斯6054654

TA貢獻1876條經驗 獲得超7個贊

另一種方法來做到這一點


import {render, screen} from '@testing-library/react';


...


  render(<MyComponent />);

  expect(screen.getByTestId('my-test-id')).toHaveTextContent('some text');

請注意,現在建議使用它來screen代替渲染的結果。


查看完整回答
反對 回復 2022-01-07
  • 2 回答
  • 0 關注
  • 141 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號