Options de configuration
Cette page a été traduite par PageTurner AI (bêta). Non approuvée officiellement par le projet. Vous avez trouvé une erreur ? Signaler un problème →
Introduction
La bibliothèque peut être configurée via la fonction configure, qui accepte :
un objet JS simple ; celui-ci sera fusionné avec la configuration existante. Exemple :
configure({testIdAttribute: 'not-data-testid'})une fonction ; cette fonction recevra la configuration existante et doit retourner un objet JS simple qui sera fusionné comme ci-dessus, par exemple :
configure(existingConfig => ({something: [...existingConfig.something, 'extra value for the something array']}))
Note
Les wrappers spécifiques à un framework comme React Testing Library peuvent ajouter plus d'options que celles présentées ci-dessous.
- Native
- React
- Angular
- Cypress
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)
},
})
import {configure} from '@testing-library/react'
configure({testIdAttribute: 'data-my-test-id'})
import {configure} from '@testing-library/angular'
configure({
dom: {
testIdAttribute: 'data-my-test-id',
},
})
import {configure} from '@testing-library/cypress'
configure({testIdAttribute: 'data-my-test-id'})
Options
computedStyleSupportsPseudoElements
Définissez à true si window.getComputedStyle prend en charge les pseudo-éléments, c'est-à-dire un
deuxième argument. Si vous utilisez testing-library dans un navigateur, vous devrez presque toujours
définir cette option à true. Seuls les navigateurs très anciens ne prennent pas en charge cette propriété
(comme IE 8 et versions antérieures). Cependant, jsdom ne prend actuellement pas en charge le deuxième
argument. Cela concerne les versions de jsdom antérieures à 16.4.0 et toute
version qui enregistre un avertissement not implemented lors de l'appel de
getComputedStyle
avec un deuxième argument, par exemple
window.getComputedStyle(document.createElement('div'), '::after'). Valeur par défaut :
false.
defaultHidden
La valeur par défaut de l'option hidden utilisée par
getByRole. Valeur par défaut : false.
defaultIgnore
La valeur par défaut pour l'option ignore utilisée par
getByText. Détermine également les nœuds qui sont
ignorés lorsque les erreurs sont affichées.
Valeur par défaut : script, style.
showOriginalStackTrace
Par défaut, waitFor garantit que la stack trace des
erreurs levées par Testing Library est nettoyée et raccourcie pour vous aider
à identifier la partie de votre code ayant provoqué l'erreur (les stack traces
asynchrones sont difficiles à déboguer). Pour désactiver ce comportement,
définissez showOriginalStackTrace à false. Vous pouvez également désactiver cette fonctionnalité pour un appel
spécifique via les options passées à waitFor.
throwSuggestions (expérimental)
Lorsqu'activé, si des requêtes plus pertinentes sont disponibles, le
test échouera et proposera une requête alternative à utiliser. Valeur par défaut :
false.
Pour désactiver une suggestion pour une seule requête, ajoutez simplement {suggest:false} comme
option.
screen.getByTestId('foo', {suggest: false}) // will not throw a suggestion
Lorsque cette option est activée, elle peut suggérer des requêtes dont l'implémentation
manque d'intuitivité. Cela se produit typiquement pour les
rôles qui ne peuvent pas être nommés,
notamment les paragraphes. Par exemple, si vous tentez d'utiliser
getByText, vous pourriez rencontrer l'erreur suivante :
TestingLibraryElementError: A better query is available, try this:
getByRole('paragraph')
Cependant, il n'existe pas de moyen direct d'interroger les paragraphes en utilisant le paramètre
d'objet de configuration, comme dans getByRole('paragraph', { name: 'Hello World' }).
Pour résoudre ce problème, vous pouvez utiliser une fonction personnalisée pour valider la structure de l'élément, comme illustré dans l'exemple ci-dessous. Plus d'informations sont disponibles dans le problème GitHub :
getByRole('paragraph', {
name: (_, element) => element.textContent === 'Hello world',
})
testIdAttribute
L'attribut utilisé par getByTestId et les requêtes associées.
Valeur par défaut : data-testid.
getElementError
Fonction qui retourne l'erreur utilisée lorsque les requêtes get ou find échouent. Prend le message d'erreur et l'objet conteneur en arguments.
asyncUtilTimeout
La valeur globale de timeout en millisecondes utilisée par les utilitaires
waitFor. Valeur par défaut : 1000ms.