Two Fer

Two Fer

Facile

Introduction

Dans certains accents anglais, quand on dit « two for » rapidement, ça ressemble à « two fer ». « Two-for-one » est une façon de dire que si on en achète un, on en obtient un autre gratuitement. Ainsi, l'expression « two-fer » sous-entend souvent une offre deux pour un.

Imagine une boulangerie qui propose une offre de fête où on peut acheter deux cookies pour le prix d'un (« two-fer one ! »). Tu acceptes l'offre et, très généreusement, tu décides d'offrir le cookie supplémentaire à quelqu'un d'autre dans la file d'attente.

Instructions

Ta tâche consiste à déterminer ce que tu diras au moment de donner le cookie en trop.

Si tu connais le nom de la personne (par exemple si elle s'appelle Do-yun), tu diras :

One for Do-yun, one for me.

Si tu ne connais pas le nom de la personne, tu diras you à la place.

One for you, one for me.

Voici quelques exemples :

Nom Dialogue
Alice One for Alice, one for me.
Bohdan One for Bohdan, one for me.
One for you, one for me.
Zaphod One for Zaphod, one for me.

Implémentation

Avant de commencer, assure-toi de comprendre comment écrire du code capable de passer les cas de test. Pour plus de contexte, jette un œil à ce tutoriel.

La plupart des exercices Java comportent plusieurs cas de test. Ces cas sont structurés pour accompagner un processus utile appelé développement piloté par les tests (TDD). Le TDD consiste à répéter un cycle structuré qui aide les développeurs à construire des fonctionnalités complexes petit à petit plutôt que d'un seul coup. Ce cycle peut se décrire comme suit :

  1. Ajoute un test qui décrit un élément de fonctionnalité attendue qui manque encore à ton code.
  2. Lance les tests pour vérifier que ce test tout juste ajouté échoue.
  3. Modifie le code existant jusqu'à ce que :
    • tous les anciens tests continuent de passer ;
    • le nouveau test passe lui aussi.
  4. Nettoie le code, en t'assurant que tous les tests continuent de passer. Cela implique généralement de renommer des variables, de supprimer des morceaux de logique dupliqués, de retirer de la journalisation oubliée, etc.
  5. Reviens à l'étape 1 jusqu'à ce que toute la fonctionnalité attendue soit en place !

Les fichiers de test de ce parcours contiennent tous les tests que ta solution doit réussir pour être considérée comme valide. Cela ne semble pas immédiatement compatible avec le cycle décrit plus haut, dans lequel les tests s'écrivent un par un. Cependant, l'outil que nous utilisons pour écrire nos tests, JUnit, fournit une annotation @Disabled qui permet d'ignorer temporairement un test déjà écrit. Grâce à cette annotation, nous nous assurons que les fichiers de test que nous te livrons respectent les règles suivantes :

  • Le premier test de chaque fichier de test n'est pas ignoré par défaut.
  • Tous les tests sauf le premier de chaque fichier de test sont ignorés par défaut.

Cela te permet de simuler le cycle TDD en suivant ces étapes légèrement modifiées :

  1. Lance les tests pour vérifier qu'au plus un test échoue actuellement.
  2. Modifie le code existant jusqu'à ce que tous les tests non ignorés passent.
  3. Nettoie le code, en t'assurant que tous les tests non ignorés continuent de passer.
  4. Supprime l'annotation @Disabled la plus haute dans le fichier de test.
  5. Reviens à l'étape 1 jusqu'à ce qu'aucun test ne soit ignoré et que tous les tests passent !

Source

Explore la source de cet exercice.

Modifie via GitHub Le lien s'ouvre dans une nouvelle fenêtre ou un nouvel onglet
Java Exercism

Prêt à commencer Two Fer ?

Inscris-toi sur Exercism pour apprendre et maîtriser Java avec 26 concepts158 exercices, et un vrai mentorat humain, le tout gratuitement.