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 :
- dans
setUp(), enregistrez une catégorie et quelques plats, avec le traitBaseDeDonnees(fourni) :recreerLaBase(), puisenregistrer(...$objets); - vérifiez que
/menu?budget=5ne propose que les plats abordables, du moins cher au plus cher ; - 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 ?
- « à 5 po ou moins » : un plat à exactement 5 po, le cas limite ;
- « du moins cher au plus cher » : des plats enregistrés dans le désordre. Sinon, la base les rend dans l'ordre d'insertion, et un tri oublié passe inaperçu ;
- « seulement les abordables » : au moins un plat trop cher.
Trois mutants 🐛 vous attendent. Ils sont taillés pour passer entre les mailles de données trop sages.