跳至主要内容

选项

以下选项允许调整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

键盘设备包含的键盘键数组。

这允许插入不同的布局/本地化。

默认值: “标准” US-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