Contenu du cours
Introduction aux Tests d'Automatisation QA
Introduction aux Tests d'Automatisation QA
Matchers Courants
Dans ce chapitre, nous examinerons certains matchers courants qui peuvent être utilisés pour tester divers types de valeurs.
Correspondance des tableaux et des objets
Le matcher toEqual
compare deux éléments à un niveau profond. Par conséquent, il est utile pour faire correspondre des structures comme un Array ou peut-être un Object :
Vérification Approfondie
La méthode toContain
vérifie si le Tableau passé contient une valeur spécifique :
La méthode toContainEqual
est utilisée pour les tableaux compliqués afin d'effectuer des comparaisons approfondies :
Correspondance des motifs de chaîne
La méthode toMatch
est également utilisée pour faire correspondre des chaînes :
Ce matcher ne compare pas exactement les deux chaînes, mais recherche plutôt une sous-chaîne à l'intérieur de l'entrée originale. Par conséquent, l'assertion suivante réussit également :
En réalité, la méthode toMatch
accepte simplement une expression régulière (RegEx) qui recherche le motif donné dans la chaîne d'entrée originale.
Une sous-chaîne, ou un texte simple, est une expression RegEx valide, donc simplement écrire World
recherche le terme World
dans la chaîne d'entrée, et cela correspond car "World" est une sous-chaîne de "Hello World".
Une expression régulière est simplement une séquence de caractères utilisée pour représenter un motif spécifique. Les expressions régulières sont utilisées pour rechercher efficacement des morceaux de texte qui correspondent à un motif souhaité. La plupart des langages de programmation comme Python et JavaScript ont un support intégré pour les expressions régulières, et les langages qui n'ont pas de support intégré ont des bibliothèques externes qui peuvent être installées pour ajouter un support pour les expressions régulières.
Regex suit une syntaxe spécifique, tout comme les langages de programmation. Il n'est pas nécessaire d'apprendre les expressions régulières pour progresser dans ce cours, cependant, nous pouvons regarder un exemple pour voir comment les expressions régulières peuvent être utiles en général.
Le motif /^[a-m]{5}$/
vérifie si la chaîne d'entrée a une longueur de 5 caractères et ne contient que des lettres minuscules de 'a' à 'm'.
Les expressions régulières sont assez robustes et peuvent être utilisées pour rechercher n'importe quel type de motif. Par exemple, le motif /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/
vérifie si la chaîne d'entrée est un email valide.
Vérification de `null` et `undefined`
Pour vérifier si une valeur est null
, nous ne pouvons pas utiliser les correspondances précédentes car null n'est pas un entier, une structure ou une chaîne. Dans ce cas, nous utilisons le matcher toBeNull qui n'accepte aucun argument :
JavaScript a également le mot-clé undefined
. Nous pouvons vérifier si une valeur est undefined en utilisant le matcher toBeUndefined
:
Il existe également un matcher pour vérifier l'opposé. Le matcher toBeDefined
vérifie que la valeur cible est définie.
Vérification des valeurs booléennes et de la véracité
Pour vérifier si une valeur est True
ou False
, nous utilisons les méthodes toBeTruthy
et toBeFasly
:
Ces méthodes vérifient la « véracité » ou la « fausseté » d'une valeur. Toute valeur qui serait considérée comme True
dans une condition if est une valeur Thuthy, sinon c'est une valeur Falsy.
Dans ce cas, "turthy" sera imprimé, indiquant que 10
est une valeur truthy. Au contraire, remplacer 10
par un 0
, ou une chaîne vide (''
) imprime "falsy".
Vérification des Exceptions
Nous pouvons également vérifier si une certaine exception a été levée par une fonction, en utilisant le matcher toThrow.
Disons que nous avons la fonction classique factorial
qui lève une exception lorsqu'une entrée invalide est donnée à la fonction :
Nous pouvons utiliser le matcher toThrow
pour tester si la fonction lance effectivement une Erreur / Exception en cas d'entrée invalide :
La méthode toThrow
accepte un argument, qui est censé être le contenu textuel de l'exception attendue. Puisqu'elle compare le texte de l'exception lancée, le texte exact de l'exception attendue doit donc être passé dans la méthode toThrow
.
Négation
Nous pouvons également nier des matchers en chaînant le matcher après un not
:
1. Quel est le but du matcher toEqual dans Jest ?
2. Quel matcher utiliseriez-vous pour vérifier si un tableau contient un objet spécifique avec des propriétés correspondantes ?
3. Quand utiliseriez-vous le matcher toMatch ?
4. Comment vérifiez-vous qu'une fonction lance une exception avec un message spécifique ?
Merci pour vos commentaires !