跳到主要內容

設定

當使用者在瀏覽器中互動時,例如按下鍵盤按鍵,他們會與瀏覽器向他們顯示的 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() 返回的實例上的方法。