3 回答
TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超5個(gè)贊
react-testing-library作者Kent C. Dodds本人最新推薦的選項(xiàng)是使用screen.
使用屏幕的好處是您不再需要在添加/刪除所需查詢時(shí)保持渲染調(diào)用解構(gòu)是最新的。您只需要輸入屏幕。讓您的編輯器神奇的自動(dòng)完成功能來(lái)處理其余的事情。
唯一的例外是,如果您正在設(shè)置可能應(yīng)該避免這樣做的容器或 baseElement(老實(shí)說(shuō),我再也想不出這些選項(xiàng)的合法用例了,它們目前僅出于歷史原因而存在)。
來(lái)源:https ://kentcdodds.com/blog/common-mistakes-with-react-testing-library#not-using-screen
TA貢獻(xiàn)1813條經(jīng)驗(yàn) 獲得超2個(gè)贊
screen由 提供@testing-library/dom,這@testing-library/react是建立在它之上的。使用這些screen方法時(shí),它們將在 html<body>元素中進(jìn)行查詢,如文檔中所述:
因?yàn)椴樵冋麄€(gè) document.body 很常見(jiàn),DOM 測(cè)試庫(kù)還導(dǎo)出了一個(gè) screen 對(duì)象,其中包含預(yù)先綁定到 document.body 的每個(gè)查詢
render()僅在@testing-library/react. 它返回一個(gè)類(lèi)似于的對(duì)象screen,默認(rèn)情況下也將查詢綁定到<body>. 默認(rèn)情況下,幾乎沒(méi)有區(qū)別,但您可以通過(guò)傳入 options來(lái)自定義其行為。
例如,您可以指定要在其中查詢之外的元素<body>,甚至可以提供自定義查詢方法。
為了回答您關(guān)于哪個(gè)是最好的問(wèn)題,我會(huì)說(shuō) usingrender()更好,因?yàn)?code>options它更靈活,但要引用文檔:
您不需要經(jīng)常指定選項(xiàng)
不過(guò),我更喜歡使用 提供的方法render(),因?yàn)槿绻鷽Q定添加選項(xiàng),則無(wú)需記住更改所有查詢。
TA貢獻(xiàn)1872條經(jīng)驗(yàn) 獲得超4個(gè)贊
只需添加到測(cè)試文件的第一行,以允許訪問(wèn)虛擬 DOM 元素,
/**
* @jest-environment jsdom
*/
添加回答
舉報(bào)
