Track
/
Java
Java
/
Esercizi
/
Two Fer
Two Fer

Two Fer

Facile

Introduzione

In alcuni accenti inglesi, quando dici «two for» velocemente, suona come «two fer». Two-for-one è un modo per dire che se ne compri uno, ne ottieni un altro gratis. Quindi l'espressione «two-fer» spesso implica un'offerta due per uno.

Immagina una panetteria che ha un'offerta festiva: puoi comprare due biscotti al prezzo di uno («two-fer one!»). Approfitti dell'offerta e (con grande generosità) decidi di regalare il biscotto in più a qualcun altro in coda.

Istruzioni

Il tuo compito è determinare cosa dirai quando regalerai il biscotto in più.

Se conosci il nome della persona (ad esempio se si chiama Do-yun), dirai:

One for Do-yun, one for me.

Se non conosci il nome della persona, dirai invece you.

One for you, one for me.

Ecco alcuni esempi:

Nome Dialogo
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.

Implementazione

Prima di iniziare, assicurati di aver capito come si scrive codice in grado di superare i casi di test. Per maggiori dettagli, dai un'occhiata a questo tutorial.

La maggior parte degli esercizi Java include più casi di test. Questi casi sono strutturati per supportare un processo utile noto come sviluppo guidato dai test (TDD). Il TDD consiste nel ripetere un ciclo strutturato che aiuta chi programma a costruire funzionalità complesse un pezzo alla volta, invece che tutte insieme. Il ciclo può essere descritto così:

  1. Aggiungi un test che descrive una parte della funzionalità desiderata che al momento manca nel codice.
  2. Esegui i test per verificare che questo test appena aggiunto fallisca.
  3. Aggiorna il codice esistente finché:
    • tutti i test precedenti continuano a passare;
    • anche il nuovo test passa.
  4. Ripulisci il codice, assicurandoti che tutti i test continuino a passare. Di solito questo comporta rinominare le variabili, rimuovere blocchi di logica duplicati, rimuovere il logging rimasto, ecc.
  5. Torna al passo 1 finché non hai costruito tutta la funzionalità desiderata!

I file di test di questo track contengono tutti i test che la soluzione deve superare per essere considerata valida. A prima vista sembra incompatibile con il ciclo descritto sopra, in cui i test si scrivono uno alla volta. Tuttavia, lo strumento che usiamo per scrivere i test, JUnit, mette a disposizione un'annotazione @Disabled che permette di saltare temporaneamente un test già scritto. Usando questa annotazione, ci assicuriamo che i file di test che ti forniamo rispettino le seguenti regole:

  • Il primo test di ogni file di test non viene saltato per impostazione predefinita.
  • Tutti i test tranne il primo in ogni file di test vengono saltati per impostazione predefinita.

Questo ti permette di simulare il ciclo del TDD seguendo questi passi leggermente modificati:

  1. Esegui i test per verificare che al momento fallisca al massimo un test.
  2. Aggiorna il codice esistente finché tutti i test non saltati passano.
  3. Ripulisci il codice, assicurandoti che tutti i test non saltati continuino a passare.
  4. Rimuovi l'annotazione @Disabled più in alto nel file di test.
  5. Torna al passo 1 finché non ci sono più test saltati e tutti i test passano!

Fonte

Esplora la fonte di questo esercizio.

Modifica tramite GitHub Il link si apre in una nuova finestra o scheda
Java Exercism

Vuoi iniziare Two Fer?

Iscriviti a Exercism per imparare e padroneggiare Java con 26 concetti158 esercizi e il mentoring di persone reali, tutto gratis.