Pourquoi tester
Trouvez les bogues avant les utilisateurs.
Pourquoi tester est une leçon Lua Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Lua Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Lua Academy comprend 4 leçons au total.
Pourquoi tester
Les tests automatisés sont du code qui vérifie votre code. Au lieu d’exécuter manuellement un programme et d’examiner sa sortie, vous écrivez de petites assertions que le programme d’exécution des tests vérifie pour vous.
Pour Lua, le framework le plus populaire est busted. Il fournit une syntaxe claire pour décrire le comportement et signaler les réussites ou les échecs.
Le coût de l’absence de tests
Sans tests, chaque modification est un pari. Vous corrigez un bogue et en cassez silencieusement un autre. À mesure que le code grandit, une vérification manuelle approfondie devient impossible.
Les tests constituent un filet de sécurité. Lorsque vous remaniez le code, une suite de tests entièrement réussie vous indique que le comportement est préservé.
Un premier fichier de test
Un fichier de test busted se trouve généralement dans un dossier spec/ et se termine par _spec.lua. À l’intérieur, vous décrivez ce que vous testez.
Voici l’exemple utile le plus simple. Il vérifie que l’arithmétique élémentaire fonctionne.
describe("math", function()
it("adds numbers", function()
assert.are.equal(4, 2 + 2)
end)
end)Exécuter busted
Vous installez busted avec LuaRocks : luarocks install busted. Exécutez ensuite la commande busted à la racine de votre projet.
Le programme recherche les fichiers qui se terminent par _spec.lua, exécute chaque bloc it et affiche un point pour chaque réussite ainsi qu’un F pour chaque échec.
Tester votre propre module
Les tests réels importent le module testé avec require. Vous appelez ses fonctions et vérifiez le résultat à l’aide d’assertions.
Supposons que vous disposiez d’un module calculator.lua qui renvoie une table de fonctions.
local calc = require("calculator")
describe("calculator", function()
it("multiplies", function()
assert.are.equal(6, calc.mul(2, 3))
end)
end)Les tests comme documentation
Des tests bien écrits servent aussi de documentation vivante. Un nouveau développeur peut lire le fichier de spécification et comprendre exactement comment une fonction est censée se comporter.
Comme les descriptions sont de simples chaînes, elles se lisent presque comme des phrases : « calculator multiplie ».
describe("string utils", function()
it("trims whitespace", function()
assert.are.equal("hi", utils.trim(" hi "))
end)
end)Des boucles de rétroaction rapides
Le véritable atout des tests est leur rapidité. Exécuter une suite complète ne prend que quelques secondes, bien moins que parcourir manuellement une application en cliquant.
Vous pouvez même exécuter busted en mode surveillance ou cibler un seul fichier pour conserver un retour rapide pendant le développement.
-- run only one file
-- busted spec/calculator_spec.luaDétecter les régressions
Une régression est un bogue qui réapparaît dans du code qui fonctionnait auparavant. Lorsque vous trouvez un bogue, la meilleure pratique consiste d’abord à écrire un test qui le reproduit.
Une fois le test en échec, corrigez le code jusqu’à ce qu’il réussisse. Ce test protège désormais contre le retour du bogue.
it("handles empty input", function()
assert.are.equal(0, calc.sum({}))
end)Ce qui fait un bon test
De bons tests sont rapides, isolés et déterministes. Ils ne doivent pas dépendre du réseau, du temps ou de valeurs aléatoires, sauf si ces éléments sont contrôlés.
Chaque test doit vérifier un comportement clairement défini. En cas d’échec, son nom doit indiquer ce qui est cassé sans qu’il soit nécessaire de lire son contenu.
La pyramide des tests
La pyramide des tests recommande de nombreux petits tests unitaires, moins de tests d’intégration et très peu de tests de bout en bout. Les tests unitaires sont peu coûteux et rapides : privilégiez-les.
busted est principalement un outil de tests unitaires, même si vous pouvez aussi l’utiliser pour les tests d’intégration.
La confiance nécessaire pour modifier le code
Le bénéfice le plus profond des tests est la confiance. Avec une suite fiable, vous pouvez remanier le code de manière ambitieuse, mettre à niveau les dépendances et livrer plus rapidement.
Ce cours vous enseigne busted depuis les bases : structure, assertions et doublures de test comme les simulations et les espions.
describe("feature", function()
it("still works after refactor", function()
assert.is_true(feature.enabled())
end)
end)Vérification rapide
Vérifiez votre compréhension des raisons pour lesquelles nous écrivons des tests.
Récapitulatif
Les tests sont du code qui vérifie du code. busted est le framework Lua de référence : il recherche les fichiers _spec.lua et signale les réussites ou les échecs.
De bons tests sont rapides, isolés et déterministes. Ils détectent les régressions, servent de documentation et vous donnent la confiance nécessaire pour modifier librement le code.
Questions Fréquemment Posées
La leçon « Pourquoi tester » est-elle gratuite ?
Oui — le texte complet de « Pourquoi tester » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Lua Academy, passe à CoddyKit PRO. Le cours Lua Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Pourquoi tester » ?
Trouvez les bogues avant les utilisateurs. Tu pratiques Lua Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Lua Academy ?
Aucune expérience préalable n'est requise. Lua Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.
Combien de temps prend la leçon « Pourquoi tester » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Lua Academy ?
Oui. Chaque leçon Lua Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Pourquoi tester
- Blocs describe et it
- Assertions
- Simulations et espions