Skip to the content.

TripService Kata - PHP Version

Ceci est une version adaptée du kata. Voir la version originale où il est également disponible dans d’autres langages.

Contexte fonctionnel

Imaginez un réseau social où nous partagerions avec nos amis nos carnets de voyages : Photos, vidéos, récits, …

Vous faites partie de l’équipe en charge du site et vous avez décidé de prendre un peu de temps pour faire un peu de refactoring d’une classe en particulier : celle qui permet de partager de récupérer la liste des voyages d’une personne, TripService.

Bien entendu, cette liste n’est pas publique : on ne la partage qu’avec ses amis.

Règles de refactoring

Cette classe est cruciale pour le fonctionnement du site, il est donc impératif d’avoir un coverage 100% de la méthode TripService.getTripsByUser() avant toute modification de code… en dehors des refactorisations automatiques (que votre IDE peut faire pour vous) si nécessaires pour écrire les tests.

Il est également demandé de bien respecter le principe des tests unitaires suivant : ne pas inclure dans les tests des méthodes qui pourrait générer des appels à une bases de données, des fichiers, etc… Le code de ces méthodes ont ont été remplacés par des levées d’exception de type ShouldNotBeUsedDuringUnitTest pour vous guider dans le respect de cette règle.

Installation

Prérequis

ou

Installation

git clone git@github.com:blanc-frederic/kata.git
cd kata/TripBook
docker-compose run composer install

Tests

Lancer les tests :

docker-compose run tests

Avec génération du code coverage :

docker-compose run coverage

Le rapport sera généré dans /var/coverage, vous pouvez le visualiser en ouvrant index.html dans un navigateur.