Pourquoi tester ?
L'IA pond du code qui a l'air parfait et qui est faux. Le test est ton filet : il crie quand ça casse. Le moment où un test attrape une hallucination.
Ton premier test
Un test, c'est juste du code qui lève une erreur quand le résultat ne colle pas. On l'écrit à la main, sans aucun framework, pour comprendre la mécanique.
Arrange-Act-Assert
La grammaire universelle d'un test : préparer, agir, vérifier. Et la règle qui sépare un bon test d'un mauvais : tester le comportement, pas l'implémentation.
Quoi tester, quoi ignorer
Tout tester est une perte de temps ; ne rien tester est dangereux. Un critère clair pour choisir, et pourquoi 100 % de couverture ne prouve rien.
Le rouge d'abord
Un test qui n'a jamais été rouge ne teste rien. Le piège de assertTrue(true), et pourquoi on écrit (parfois) le test avant le code.
Le cycle TDD
Rouge → vert → refactor : la boucle de feedback la plus rapide du dev. Et le débat « Is TDD dead ? » tranché honnêtement, sans dogme.
Mocks et stubs
Isoler ce qu'on teste : remplacer la base, le réseau, l'horloge par des doublures. Et la règle d'or : mocker le moins possible.
Tes tests dans un vrai projet
Le bac à sable, c'était pour apprendre. Place à Vitest : on l'installe, on lance les tests en watch, en CI, et on lit la couverture sans se faire avoir.
La pyramide et le code IA
Unitaire, intégration, end-to-end : combien de chaque. Et le workflow complet pour tester le code que l'IA génère, sans se faire avoir.
Ce que vous allez apprendre
Écrire un test qui passe au rouge puis au vert, à la main puis avec la bonne structure
Choisir quoi tester (et quoi ignorer), et pourquoi 100 % de couverture ne prouve rien
Pratiquer le cycle TDD red-green-refactor, et savoir quand il vaut le coup
Tester le code généré par l'IA pour attraper ses bugs logiques avant la prod
Prérequis : savoir lire et écrire un peu de JavaScript (variables, fonctions, conditions). Si ce n'est pas encore le cas, commencez par le cours JavaScript. Tous les exemples sont en JavaScript et tournent dans votre navigateur ; les idées valent pour tous les langages (PHP, Python, Go…).