跳至主要內容

選項

以下選項允許調整 user-event API 的行為。它們可以針對每個 setup() 應用。

advanceTimers

user-event 在一些後續輸入之間增加一個 延遲。當使用 假計時器 時,必須將此選項設定為您的測試執行器的時間推進函數。例如

const user = userEvent.setup({advanceTimers: jest.advanceTimersByTime})
注意

您可能會發現建議設定 delay: null 以防止在使用假計時器時測試逾時。這不建議,因為它可能會導致意外行為。從 v14.1 開始,我們建議改用 advanceTimers 選項。

(delay: number) => Promise<void> | void

預設值() => Promise.resolve()

applyAccept

當使用 upload() 時,如果元素上存在 accept 屬性,則自動捨棄不符合該屬性的檔案。

預設值true

autoModify

我們打算在未來自動為可列印字元套用修飾鍵。
也就是說,如果大寫鎖定未啟動,則 A 表示 {Shift>}a{/Shift}

此選項允許您預先選擇退出此變更。
因此,此功能不會構成重大變更。

預設值true

delay

在一些後續輸入之間,例如輸入一系列字元,程式碼執行會以 setTimeout 延遲(至少)delay 毫秒。

這會將下一個變更至少移動到下一個巨集任務,並允許其他(非同步)程式碼在事件之間執行。

null 會阻止呼叫 setTimeout

預設值0

document

該文件。

如果 API 使用元素直接呼叫且未設定,則此預設為元素的所有者文件。否則,它會回退到全域文件。

預設值element.ownerDocument ?? globalThis.document

keyboardMap

鍵盤裝置由一組鍵盤按鍵組成。

這允許插入不同的佈局/本地化。

預設值「標準」美式 104 鍵 QWERTY 鍵盤。

pointerEventsCheck

指標 API 包含檢查元素是否具有或繼承 pointer-events: none
已知此檢查成本很高,並且在檢查深度巢狀節點時非常昂貴。

此選項決定指標相關 API 執行檢查的頻率。

這是一個二進位旗標選項。您可以組合多個層級。

  • PointerEventsCheckLevel.Never:
    不檢查指標事件
  • PointerEventsCheckLevel.EachTarget:
    每個事件目標檢查一次
  • PointerEventsCheckLevel.EachApiCall:
    每個 API 檢查每個事件目標一次
  • PointerEventsCheckLevel.EachTrigger:
    檢查每次使用者互動時的指標事件,這會觸發一堆事件。例如,即使這會觸發 pointerupmouseupclick 等,也只會在釋放滑鼠按鈕時檢查一次...

預設值PointerEventsCheckLevel.EachApiCall

pointerMap

一組可用的指標按鍵。

這允許插入不同的指標裝置。

預設值一個簡單的滑鼠和觸控螢幕

skipAutoClose

type() 會在呼叫結束時自動釋放任何仍然按下的按鍵。
此選項允許選擇退出此功能。

預設值:false

skipClick

type() 表示點擊元素。
此選項允許選擇退出此功能。

預設值:false

skipHover

click() 表示先將游標移動到目標元素。
此選項允許選擇退出此功能。

預設值:false

writeToClipboard

當觸發 cutcopy 時,將選取的資料寫入 剪貼簿 API。剪貼簿 API 通常無法用於測試程式碼。我們的 setup() 會將 navigator.clipboard 屬性取代為一個存根。

直接呼叫 API 時的預設值false
當從 setup() 的執行個體呼叫 API 時的預設值true