Passer aux informations sur le produit
Introduction aux tests pour le développement front-end
Introduction aux tests pour le développement front-end
Description
Introduction au livre
Stratégies d'automatisation des tests utiles à connaître dès maintenant

Dans les applications web modernes, l'automatisation des tests est cruciale pour la qualité et la maintenabilité, mais de nombreux développeurs ont du mal à écrire du code de test car ils manquent d'expérience dans ce domaine.
Ce livre s'adresse aux développeurs front-end qui écrivent du code de test pour la première fois et explique non seulement la méthode de base d'écriture de code de test, mais aussi la méthode d'écriture de code de test adaptée à chaque situation et comment utiliser divers outils, avec de nombreux exemples.
Il comprend notamment des exemples créés avec TypeScript et Next.js, vous permettant d'acquérir les connaissances et le savoir-faire pratiques les plus récents.
La version coréenne a été encore améliorée par l'ajout de tests de composants d'interface utilisateur et de tests E2E dans GitHub Actions en annexes.
  • Vous pouvez consulter un aperçu du contenu du livre.
    Aperçu

indice
Préface du traducteur xiii
Avis du lecteur bêta xv
Début XVI
À propos de ce livre xvii

CHAPITRE 1 : OBJECTIFS ET OBSTACLES DES ESSAIS 1

1.1 Structure de ce livre 1
1.2 Pourquoi rédiger des tests 4
1.3 Obstacles à la rédaction des tests 9

CHAPITRE 2 MÉTHODES ET STRATÉGIES D'ESSAI 13

2.1 Portée et objectif du test 13
2.2 Étendue des tests frontaux 15
2.3 Objectif des tests front-end 18
2.4 Modèle de stratégie de test 21
2.5 Planification de la stratégie de test 23

CHAPITRE 3 Tests unitaires pour débutants 27

3.1 Préférences 27
3.2 Composants de test 28
3.3 Comment exécuter des tests 31
3.4 Branchement conditionnel 35
3.5 Cas particuliers et gestion des exceptions 37
3.6 Correspondance par objectif 43
3.7 Test de traitement asynchrone 48

CHAPITRE 4 : L'objet arbre 53

4.1 Pourquoi utiliser un objet arbre ? 53
4.2 Stub 55 utilisant le module de cou
4.3 Notions de base des objets factices d'API Web 59
4.4 Fonction de création d'objet simulé de l'API Web 64
4.5 Spy 68 utilisant la fonction cou
4.6 Détails de l'objet simulé de l'API Web 72
4.7 Tests dépendant de l'heure actuelle 75

CHAPITRE 5 : Tests des composants d’interface utilisateur 79

5.1 Principes de base des tests de composants d'interface utilisateur 79
5.2 Installation de la bibliothèque 82
5.3 Tester les composants d'interface utilisateur pour les débutants 84
5.4 Test du composant d'interface utilisateur Liste d'éléments 89
5.5 Test des composants d'interface utilisateur interactifs 94
5.6 Tests de base avec les fonctions utilitaires
5.7 Test des composants d'interface utilisateur avec traitement asynchrone 108
5.8 Tests d'instantanés des composants d'interface utilisateur 114
5.9 Rôles implicites et noms accessibles 118

CHAPITRE 6 Lecture du rapport de couverture 125

6.1 Aperçu du rapport de couverture 125
6.2 Lecture du rapport de couverture 127
6.3 Reporter personnalisé 132

CHAPITRE 7 Tests d'intégration d'applications Web 135

7.1 Développement et tests d'intégration d'applications Next.js 135
7.2 Tests d'intégration avec React Context 137
7.3 Test de l'intégration du routeur et du rendu Next.js 141
7.4 Tests d'intégration du routeur et des entrées Next.js 145
7.5 Gérez facilement les formulaires avec React Hook Form 149
7.6 Tests de validation de formulaire 151
7.7 MSW 159 Simulation des réponses de l'API Web
7.8 Tests d'intégration d'API Web 161
7.9 Test d'intégration du téléchargement d'images 167

CHAPITRE 8 Explorateur de composants d'interface utilisateur 175

8.1 Principes de base des livres d'histoires 175
8.2 Module complémentaire essentiel pour livres d'histoires 180
8.3 Enregistrement d'une histoire s'appuyant sur l'API Context 185
8.4 Enregistrement d'une histoire s'appuyant sur une API Web 188
8.5 Enregistrement d'une story qui utilise le routeur Next.js 192
8.6 Tests d'interaction à l'aide de la fonction Play 193
8.7 Tests d'accessibilité avec addon-a11y 198
8.8 Storybook Test Runner 202
8.9 Réutilisation des scénarios dans les tests d'intégration 207

CHAPITRE 9 Tests de régression visuelle 211

9.1 Nécessité de tests de régression visuelle 211
9.2 Comparaison d'images avec reg-cli 214
9.3 Introduction des Story Caps 218
9.4 Présentation de la suite de réglementation 222
9.5 Configuration des services de stockage externe 228
9.6 Intégration de reg-suite à GitHub Actions 232
9.7 Refactorisation active avec tests de régression visuelle 236

CHAPITRE 10 Tests E2E 239

10.1 Qu'est-ce qu'un test E2E ? 239
10.2 Installation et fondation de l'éclairage de jeu 242
10.3 Applications à tester 246
10.4 Exécution de tests E2E dans un environnement de développement 250
10.5 Test 254 utilisant Prisma
10.6 Fonction de connexion Test E2E 259
10.7 Test de fonctionnalité de profil E2E 263
10.8 Fonction Like Test E2E 266
10.9 Nouvelle page créée Test E2E 269
10.10 Article Modifier la page Test E2E 272
10.11 Liste des articles publiés Page Test E2E 275
10.12 Comment gérer les tests instables 278

ANNEXE A Annexe coréenne : Exécution des tests de composants d’interface utilisateur dans GitHub Actions 281

A.1 Exercices pratiques sur GitHub Actions 281
A.2 Comment créer un fichier de flux de travail 288
A.3 Optimisation du flux de travail par parallélisation des tâches 291

ANNEXE B Annexe coréenne : Exécution de tests E2E dans GitHub Actions 299

B.1 Exécution de tests E2E dans GitHub Actions 299
B.2 Comment écrire un Dockerfile 301
B.3 Comment écrire un fichier Docker Compose 304

Recherche 310

Image détaillée
Image détaillée 1

Dans le livre
Les modifications de code ne sont pas seulement nécessaires lors du développement de nouvelles fonctionnalités.
Le développement front-end moderne repose sur de nombreuses bibliothèques ; la mise à jour de ces bibliothèques nécessite donc également de modifier votre code.
Bien sûr, si vous utilisez Dependabot, celui-ci vérifiera automatiquement les vulnérabilités pouvant survenir lors de la mise à jour des bibliothèques dépendantes et créera une demande d'extraction.
Cependant, il ne faut pas supposer que Defenderbot filtrera toutes les vulnérabilités.
Si vous avez écrit du code de test, vous devriez établir une règle telle que « les mises à jour mineures peuvent être fusionnées si les tests réussissent ».

--- p.6

La refactorisation peut être effrayante lorsque votre projet publié ne comporte aucun code de test.
Vous devriez commencer par organiser les fonctionnalités publiées dans une liste.
Une fois le problème résolu, rédigez des tests de régression pour vérifier qu'aucun défaut ne survient avant ou après la modification.
Une fois les tests de régression rédigés, vous pouvez entamer la refactorisation en toute confiance.

--- p.23

Plus un test est similaire à l'environnement d'exécution réel, plus il est reproductible.
Cependant, à mesure que la reproductibilité augmente, le temps d'exécution peut devenir trop long ou la configuration de l'environnement peut devenir difficile.
Un cas typique se présente lorsque vous devez traiter des données obtenues à partir d'une API web, et que, lors de l'obtention de ces données, l'opération échoue parfois pour des raisons telles qu'une erreur réseau.
Lorsque vous utilisez des API web, vous devez tester non seulement le « cas de succès », mais aussi le « cas d'échec ».
Si l'opération réussit, vous pouvez la tester en connectant le serveur API Web réel à l'environnement de test.
Il n'est pas correct d'ajouter du code au serveur d'API Web pour tester les cas de défaillance.
De plus, il est impossible d'ajouter une implémentation de test à l'API web d'un service externe.

--- p.53

La couverture est un indicateur quantitatif qui peut être mesuré objectivement.
Selon le projet, elle sert également de norme de qualité à respecter.
Par exemple, il peut être utilisé pour créer un pipeline tel que « Si la couverture de la branche n'est pas supérieure à 80 %, elle ne passe pas l'intégration continue ».
(...) La couverture est utilisée comme déclencheur pour examiner si des tests doivent être ajoutés à un fichier spécifique.
Il est également utile pour trouver du code dupliqué qui a passé ESLint mais qui subsiste.
Nous recommandons de consulter les rapports de couverture afin de déterminer s'il existe des domaines qui n'ont pas été suffisamment testés avant leur mise en production.

--- p.132

Le module d'exécution de tests de Storybook convertit les histoires en tests exécutables.
Les scénarios convertis en tests sont exécutés dans Jest et Playrite.
Cette fonctionnalité peut être utilisée pour effectuer des tests de fumée sur le Storybook, ainsi que pour vérifier si la fonction de lecture que nous avons examinée précédemment s'est déroulée normalement et s'il existe des violations d'accessibilité ; elle peut donc également être utilisée pour tester les composants d'interface utilisateur.

--- p.202

Les tests E2E côté client permettent de tester au plus près de l'application réelle, car ils peuvent utiliser un navigateur.
Il est idéal pour les situations où vous devez utiliser des API spécifiques au navigateur ou effectuer des tests tout en déplaçant l'écran.
(...) L'élément le plus important dans les tests E2E est de définir clairement l'objectif de ce qui doit être testé.
L'application proprement dite se connecte à un serveur de base de données ou à un service de stockage externe.
Dans les tests E2E, un critère important est la capacité de l'ensemble de la structure, y compris ces systèmes, à reproduire fidèlement une situation réaliste.
--- p.239

Avis de l'éditeur
Trouvez la méthode de test qui vous convient parmi les nombreuses méthodes disponibles et améliorez votre efficacité au travail.

Le développement front-end a connu de nombreux changements ces dernières années avec l'émergence de bibliothèques et de frameworks puissants.
Les technologies front-end modernes, notamment les applications monopages, ont déjà été adoptées par de nombreux produits et sont devenues des standards de facto.
Contrairement aux changements survenus dans l'environnement de développement, de nombreux développeurs ont du mal à écrire du code de test.
De plus, il existe tellement de méthodes de test pour les tests front-end, telles que les tests de composants d'interface utilisateur, les tests de régression visuelle, les storybooks et les tests E2E, qu'il n'est pas facile de déterminer quand et quels tests sont nécessaires.


Il n'existe pas de solution miracle qui convienne à toutes les situations.
Vous devez choisir et tester l'outil qui convient à votre situation.
Il existe de nombreuses méthodes de test pour l'interface utilisateur, vous pouvez donc choisir la méthode optimale.
Ce livre explore les environnements de développement les plus récents à travers Next.js et TypeScript, deux des frameworks les plus populaires, et examine quels types de tests doivent être effectués et dans quelles circonstances.
Les chapitres 1 à 4 sont destinés aux développeurs qui écrivent du code de test pour la première fois.
Le chapitre 1 explique pourquoi vous devez écrire des tests, et le chapitre 2 aborde la portée et l'objectif des tests pour vous aider à comprendre le flux global des tests front-end.
Les chapitres 3 et 4 traitent en détail des tests unitaires et des tests d'objets simulés avant de se plonger dans la pratique proprement dite.


Les chapitres 5 à 10 abordent les technologies front-end modernes à l'aide d'exemples React et Next.js.
Le chapitre 5 examine les points sur lesquels il faut se concentrer lors du test des composants d'interface utilisateur, et le chapitre 6 crée un rapport de couverture qui mesure la quantité de code d'implémentation qui a été testée.
Au chapitre 7, nous effectuerons des tests pratiques à l'aide d'une application exemple créée avec Next.js.
Au chapitre 8, nous explorerons Storybook, un explorateur de composants d'interface utilisateur qui vous aide à partager des composants d'interface utilisateur pour améliorer l'efficacité de la collaboration.
Au chapitre 9, nous apprendrons l'importance des tests de régression visuelle en effectuant des tests de régression visuelle sur des composants d'interface utilisateur, et au chapitre 10, nous apprendrons les tests E2E, qui permettent de tester au plus près des applications réelles.
Enfin, à l'intention des lecteurs coréens, nous avons inclus une annexe expliquant comment tester les composants d'interface utilisateur et les tests E2E dans GitHub Actions.


Les tests de code permettent non seulement de réaliser des économies, mais aussi d'améliorer la qualité du code en détectant les bugs au plus tôt, servent de document de spécifications pour les nouveaux membres de l'équipe et réduisent les erreurs de débutant lors des refactorisations.
Si vous avez repoussé l'écriture de code de test ou si vous la trouvez difficile malgré ses nombreux avantages, ce livre sera un excellent guide pour les tests front-end.
J'espère que ce livre vous aidera à écrire du code de test avec confiance.

Contenu principal

• La nécessité des tests et le déroulement des tests front-end
• Des méthodes de test appropriées telles que les tests E2E, les tests unitaires et les tests de composants d'interface utilisateur
Diverses bibliothèques et outils tels que Jest, React et reg-suite
• Test de reproduction de l'échec à l'aide d'un objet factice
Comment utiliser Storybook pour les composants d'interface utilisateur
• Tests des composants d'interface utilisateur et tests E2E dans GitHub Actions
SPÉCIFICATIONS DES PRODUITS
- Date d'émission : 21 juin 2024
Nombre de pages, poids, dimensions : 332 pages | 648 g | 188 × 245 × 16 mm
- ISBN13 : 9791193926260

Vous aimerez peut-être aussi

카테고리