設定
當使用者在瀏覽器中互動時,例如按下鍵盤按鍵,他們會與瀏覽器向他們顯示的 UI 層互動。 然後,瀏覽器會解釋此輸入,可能會相應地更改底層 DOM 並發送信任的事件。
UI 層和信任的事件無法以程式方式取得。
因此,user-event
必須應用變通方法並模擬 UI 層,以模擬使用者在瀏覽器中發生的互動方式。
每次 setup()
啟動一個會期
setup(options?: Options): UserEvent
userEvent.setup()
API 將這些變通方法應用於文件,並允許您配置 user-event
的「實例」。
這個實例上的方法會共用一個輸入裝置狀態,例如按下哪些按鍵。
這樣就可以寫入多個連續互動,其行為就像真實使用者描述的互動一樣。
import userEvent from '@testing-library/user-event'
const user = userEvent.setup()
await user.keyboard('[ShiftLeft>]') // Press Shift (without releasing it)
await user.click(element) // Perform a click with `shiftKey: true`
這個實例會公開另一個 .setup()
API,允許您配置另一個共用相同輸入裝置狀態的實例。
剪貼簿 API 通常在安全環境之外不可用。
為了啟用涉及剪貼簿的工作流程測試,userEvent.setup()
會將 window.navigator.clipboard
替換為存根。
直接 API
您也可以直接在預設匯出上呼叫 API。 這會在內部呼叫 setup
,然後在實例上使用該方法。
這是為了簡化過渡到版本 14 和編寫簡單測試。建議使用 userEvent.setup()
返回的實例上的方法。