On est en mesure de faire correspondre un état d'entrée donné à une valeur de sortie.
Pourquoi écrit-on des tests unitaires?
En JavaScript?
Garantir la qualité du code
Forcer à tester les cas limites
Quel cas limite?
Faciliter la réécriture du code (refactor)
Trouver les erreurs plus rapidement
Documenter le code
Comment ça permet de documenter le code?
Plusieurs cadriciels "framework" sont disponibles :
Karma
Protractor
Jasmine
Mocha
QUnit => notre choix pour le cours!
Nous utiliserons QUnit.
Puissant
Simple d'utilisation
Installation simple
Il suffit d'inclure un
.js à votre projet
Il est utilisé par jQuery
C'est quoi jQuery?
Visitez le site officiel et découvrez l’exercice de base
Fichier tests.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>QUnit Example</title>
<link rel="stylesheet" href="https://code.jquery.com/qunit/qunit-2.9.2.css">
</head>
<body>
<div id="qunit"></div>
<div id="qunit-fixture"></div>
<script src="https://code.jquery.com/qunit/qunit-2.9.2.js"></script>
<script src="tests.js"></script>
</body>
</html>Visitez le site officiel et découvrez l’exercice de base
Fichier tests.js
QUnit.test( "hello test", function( assert ) {
assert.ok( 1 == "1", "Passed!" );
});Résultat
ProjetWeb
js
main.js # Utilisation de fonctions
tests.js # Tests pour le fichier main.js
index.html # Page qui utilise main.js
tests.html # Page qui affiche les résultats des tests
Teste les cas limites
S'exécute rapidement
Comporte des tests qui ont des noms significatifs
Exécution simple et automatique
Couvre toutes les lignes de code
Indépendant
Lisible
Répétable