Des données pour tester

Exercice 2 sur 6 du chapitre 6 · 230 XP · 4 objectifs vérifiés par des tests

Notions abordées : Base de testJeu de donnéesCrawler

Deuxième chantier de Gorm : la carte pour un budget (/menu?budget=5). Les aventuriers fauchés y comptent : pas question qu'elle leur propose un ragoût à 12 pièces d'or.

Cette page lit la base de données. Or, pendant les tests, la base repart de zéro : pas de carte, pas de plats. C'est au test de préparer ses propres données. On appelle ça un jeu de données (fixtures).

Votre mission

Dans tests/Taverne/BudgetTest.php :

  1. dans setUp(), enregistrez une catégorie et quelques plats, avec le trait BaseDeDonnees (fourni) : recreerLaBase(), puis enregistrer(...$objets) ;
  2. vérifiez que /menu?budget=5 ne propose que les plats abordables, du moins cher au plus cher ;
  3. vérifiez le message quand rien ne correspond au budget.

Choisir ses données, c'est choisir ce qu'on teste

Un test ne voit que ce que ses données lui montrent. Pour chaque règle, demandez-vous : quelle donnée ferait échouer mon test si la règle était cassée ?

Trois mutants 🐛 vous attendent. Ils sont taillés pour passer entre les mailles de données trop sages.