
Vous avez bien saisi les enjeux des tests fonctionnels et en quoi Cypress peut vous aider dans cette tĂąche ? Il est temps de faire vos premiers pas avec Cypress. Mais avant toute chose, lâinstallation. Câest parti !
Dans ce cours, vous allez exĂ©cuter des lignes de commande npm. La façon la plus simple dâinstaller npm est dâinstaller Node.js qui lâintĂšgre.
Pour cela, rendez-vous sur le site nodejs.org et tĂ©lĂ©chargez la derniĂšre version LTS de Node. Double-cliquez sur le fichier afin de lâexĂ©cuter. Une fenĂȘtre similaire Ă la suivante apparaĂźt :Â

Suivez les Ă©tapes en acceptant la licence aprĂšs lâavoir lue. Vous pouvez laisser les autres Ă©tapes par dĂ©faut.
Pour vĂ©rifier que lâinstallation sâest bien passĂ©e, ouvrez votre terminal.
Tapez  node -v qui devrait vous renvoyer la version de Node.js installée.
Vous ĂȘtes prĂȘt Ă installer Cypress !
Pour installer Cypress, vous devez taper une ligne de commande dans le terminal.
Tapez le code suivant dans le terminal :
npm install cypress --save-dev  Vous devez obtenir un message qui ressemble au suivant :
 
Au cours de votre carriĂšre, vous aurez sĂ»rement besoin dâextensions, ou plugins, dans Cypress. Ces extensions fournissent une aide prĂ©cieuse pour coder et tester en ajoutant des fonctions Ă Cypress. Ce cours nâen utilise pas, mais il est bon dâen connaĂźtre quelques-unes pour la suite.
La documentation de Cypress officialise 6 extensions :Â
Cypress Fixture-IntelliSense : Prend en charge vos cy.fixture() grĂące Ă IntelliSense pour vos fixtures existantes. Une fixture est un ensemble de donnĂ©es prĂ©dĂ©finies ou dâobjets dâĂ©tat utilisĂ©s lors des tests unitaires, tests dâintĂ©gration ou tests fonctionnels.
IntelliSense est une fonctionnalitĂ© dâaide Ă la programmation par certains IDE (environnements de dĂ©veloppement). Les avantages principaux sont :Â
la suggestion automatique de code : lorsque vous commencez à taper du code, IntelliSense propose des suggestions ;
la complétion automatique : IntelliSense complÚte automatiquement les noms de fonctions, de propriétés et de variables ;
la documentation contextuelle : IntelliSense affiche une documentation contextuelle ;
la dĂ©tection dâerreurs : IntelliSense surligne les erreurs de code potentielles en temps rĂ©el ;
la navigation rapide : IntelliSense vous permet de naviguer rapidement Ă travers les diffĂ©rentes parties du code.Â
Cypress Helper : Plusieurs commandes et helpers pour les tests avec Cypress.
Cypress Snippets : Raccourcis utiles (dernier commit en 2018). Par exemple : cy.contains(''); sans snippet, devient cycon(ââ) avec snippet, ce qui permet de coder plus rapidement.
Cypress Snippets (voir l'encart ci-dessous) : Cette extension inclut les snippets Cypress les plus récents et les plus utilisés.
Open Cypress : Permet dâouvrir les spĂ©cifications Cypress et les blocks it() directement dans VSCode.
Test Utils : Ajoute ou supprime facilement .only ou .skip avec les raccourcis clavier ou la palette de commande.
Une fois que Cypress est installé, la commande  npx cypress open dans VSCode initialise Cypress pour votre projet. Cela crée un répertoire de configuration et d'autres fichiers nécessaires pour exécuter les tests.
Une fenĂȘtre sâouvre :

Bienvenue dans Cypress !
Cypress propose deux types de tests : E2E et Component, ou composant.
E2E (End-2-End) | Composant |
On peut naviguer sur le site Ă tester par URL. | On peut importer des composants grĂące Ă cy.mount. |
Teste les flux et les fonctionnalitĂ©s sur diffĂ©rentes pages. | Teste les composants individuels dâun site de maniĂšre isolĂ©e. |
Nous allons configurer les tests de type E2E.
1. Cliquez sur le bouton E2E Testing. Une fenĂȘtre similaire Ă celle-ci apparaĂźt :Â

Cypress va ajouter ces quatre fichiers de configuration dans lâarchitecture de votre projet.
2. Cliquez sur le bouton Continue.Â
Une fois la configuration de lâenvironnement terminĂ©e, cette fenĂȘtre apparaĂźt :

Sélectionnez votre navigateur préféré. Pour ce cours, nous utiliserons Chrome.
3. SĂ©lectionnez Scaffold example specs. Il sâagit dâun ensemble de spĂ©cifications de tests d'exemple :Â

Dans Cypress, vous voyez Ă prĂ©sent tous les tests dâexemple.

Ces fichiers d'exemples, sur lesquels nous reviendrons un peu plus loin, sont fournis pour vous aider à démarrer rapidement avec l'écriture de vos tests. Ils illustrent aussi les fonctionnalités clés du framework.
Les spécifications d'exemples couvrent différents aspects du test, tels que :
Les interactions avec des éléments HTML : Par exemple, comment cliquer sur un bouton, saisir du texte dans un champ de saisie, valider des éléments de formulaire, etc.
La navigation dans l'application : Comment accéder à différentes pages ou sections de l'application.
Les validations et les assertions : Comment vérifier que certaines valeurs ou certains éléments sont présents ou correspondent aux attentes.
Les tests asynchrones : Comment gĂ©rer les opĂ©rations asynchrones comme les requĂȘtes HTTP ou les dĂ©lais d'attente.
Vous pouvez donc vous baser sur ces fichiers dâexemples pour rĂ©diger vos propres tests.
Lors de lâinstallation, Cypress a créé des dossiers dans VSCode. Sans fermer lâinterface graphique de Cypress, retournez dans VSCode. Vous devez avoir une architecture similaire Ă celle-ci :

Trois dossiers sont apparus (e2e, fixtures, support). On y retrouvera trois des quatre fichiers de configuration installés auparavant. Le quatriÚme fichier, cypress.config.js, apparaßt quant à lui dans le dossier Cypress.
Nous nous pencherons sur les trois dossiers plus tard, mais regardons dâabord ce que le fichier cypress.config.js contient :Â
const { defineConfig } = require("cypress");
module.exports = defineConfig({
e2e: {
setupNodeEvents(on, config) {
// implement node event listeners here
},
},
});Câest dans ce fichier que vous allez spĂ©cifier vos configurations.
4. Maintenant, retournez dans lâinterface graphique de Cypress et exĂ©cutez un des tests dâexemple de Cypress, en cliquant sur Navigation :Â

Et voilĂ ! Vous venez dâexĂ©cuter votre premier test, nous en verrons le dĂ©tail prochainement !
Retrouvez les Ă©tapes de la configuration de Cypress et de lâexĂ©cution du test dâexemple en vidĂ©o :
Vous pouvez installer Cypress rapidement en utilisant la commandenpm install cypress --save-dev .     Â
Il existe des extensions pour Cypress qui ajoutent des fonctions Ă lâoutil.
VsCode prend en charge entre autres les six extensions décrites pour Cypress.
Cypress permet Ă©galement de crĂ©er lâarchitecture du projet de test lors de la premiĂšre exĂ©cution, en ajoutant trois dossiers en plus du fichier de configuration.
Parfait, maintenant que vous avez installĂ© et configurĂ© Cypress et mĂȘme exĂ©cutĂ© votre premier test, nous allons pouvoir dĂ©finir les objectifs de vos tests en fonction de votre contexte !