跳至主要内容

配置选项

简介

库可以通过 configure 函数配置,该函数接受

  • 一个纯 JS 对象;这将被合并到现有配置中。例如 configure({testIdAttribute: 'not-data-testid'})
  • 一个函数;该函数将获得现有配置,并应返回一个纯 JS 对象,该对象将如上合并,例如 configure(existingConfig => ({something: [...existingConfig.something, 'extra value for the something array']}))

注意

React Testing Library 等框架特定包装器可能会在下面显示的选项中添加更多选项。

setup-tests.js
import {configure} from '@testing-library/dom'
import serialize from 'my-custom-dom-serializer'

configure({
testIdAttribute: 'data-my-test-id',
getElementError: (message, container) => {
const customMessage = [message, serialize(container.firstChild)].join(
'\n\n',
)
return new Error(customMessage)
},
})

选项

computedStyleSupportsPseudoElements

如果 window.getComputedStyle 支持伪元素,即第二个参数,则设置为 true。如果您在浏览器中使用测试库,则几乎总是希望将其设置为 true。只有非常旧的浏览器不支持此属性(例如 IE 8 及更早版本)。但是,jsdom 目前不支持第二个参数。这包括 16.4.0 之前的 jsdom 版本以及在调用 getComputedStyle 时使用第二个参数记录 not implemented 警告的任何版本,例如 window.getComputedStyle(document.createElement('div'), '::after')。默认值为 false

defaultHidden

getByRole 使用的 hidden 选项的默认值。默认值为 false

defaultIgnore

getByText 使用的 ignore 选项 的默认值。还确定在打印错误时被忽略的节点。

默认值为 script, style

showOriginalStackTrace

默认情况下,waitFor 将确保清理和缩短 Testing Library 抛出的错误的堆栈跟踪,以便您更容易识别导致错误的代码部分(异步堆栈跟踪难以调试)。如果您想禁用此功能,请将 showOriginalStackTrace 设置为 false。您也可以在传递给 waitFor 的选项中禁用特定调用的此功能。

throwSuggestions(实验性)

启用后,如果 更好的查询 可用,则测试将失败并提供建议的查询以供替代。默认值为 false

要禁用单个查询的建议,只需添加 {suggest:false} 作为选项。

screen.getByTestId('foo', {suggest: false}) // will not throw a suggestion
注意

启用此选项时,它可能会提供缺乏直观实现的建议。通常,这种情况发生在 无法命名的角色 中,最显着的是段落。例如,如果您尝试使用 getByText,您可能会遇到以下错误

TestingLibraryElementError: A better query is available, try this:
getByRole('paragraph')

但是,没有直接的方法可以使用配置对象参数查询段落,例如在 getByRole('paragraph', { name: 'Hello World' }) 中。

为了解决此问题,您可以利用自定义函数来验证元素的结构,如下面的示例所示。有关更多信息,请参见 GitHub 问题

getByRole('paragraph', {
name: (_, element) => element.textContent === 'Hello world',
})

testIdAttribute

getByTestId 及其相关查询使用的属性。默认值为 data-testid

getElementError

get 或 find 查询 失败时返回错误的函数。接受错误消息和容器对象作为参数。

asyncUtilTimeout

waitFor 实用程序使用的全局超时值,以毫秒为单位。默认值为 1000 毫秒。