Tester les ordres

Exercice 5 sur 6 du chapitre 11 · 280 XP · 5 objectifs vérifiés par des tests

Notions abordées : CommandTester

Le grand ménage fonctionne. Mais une commande qui supprime des données, lancée chaque mois sans que personne ne la regarde, est exactement le genre de code dont on veut être sûr. Le jour où Pipin la « simplifiera », il faudra que les tests crient.

Tester une commande

CommandTester exécute une commande comme dans un terminal, sans terminal :

$this->commande->execute(['--avant' => '2026-08-01', '--dry-run' => true]);
$this->commande->getStatusCode();  // le code de sortie
$this->commande->getDisplay();     // ce qu'elle a affiché

Pour une commande qui modifie des données, le plus important n'est pas ce qu'elle affiche, c'est ce qu'elle fait : regardez ce qui reste en base.

Votre mission

Dans tests/Taverne/PurgeTest.php, écrivez les tests qui protègent le grand ménage. Un premier test est déjà là, avec de quoi enregistrer des réservations et lire celles qui restent.

La notation

Comme pour la volière : vos tests doivent passer sur le grand ménage tel qu'il est, puis échouer sur chacun des quatre mutants 🐛. Chaque mutant est une erreur plausible, de celles qu'on fait en « simplifiant ». Un mutant qui survit, c'est un test qui manque.