Two Fer

Two Fer

Könnyű

Bevezetés

Bizonyos angol akcentusokban, ha gyorsan mondod, hogy „two for”, az úgy hangzik, mint a „two fer”. A two-for-one azt jelenti, hogy ha veszel egyet, kapsz egy másikat ingyen. Így a „two-fer” kifejezés gyakran egy kettőt egy áráért szóló ajánlatra utal.

Képzelj el egy pékséget, ahol ünnepi akció keretében két sütit vehetsz egy áráért („two-fer one!”). Elfogadod az ajánlatot, és (nagyon nagylelkűen) úgy döntesz, hogy a plusz sütit odaadod valaki másnak, aki a sorban áll.

Utasítások

A feladatod, hogy eldöntsd, mit mondasz, amikor odaadod a plusz sütit.

Ha ismered a személy nevét (például ha Do-yun a neve), akkor ezt mondod:

One for Do-yun, one for me.

Ha viszont nem ismered a személy nevét, akkor helyette a you szót mondod.

One for you, one for me.

Íme néhány példa:

Név Párbeszéd
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.

Megvalósítás

Mielőtt elkezded, győződj meg róla, hogy érted, hogyan kell olyan kódot írni, amely átmegy a teszteseteken. További háttérért nézd meg ezt az oktatóanyagot.

A legtöbb Java-feladat több tesztesetet tartalmaz. Ezek a tesztesetek egy hasznos folyamatot támogatnak, amelyet tesztvezérelt fejlesztésnek (TDD) neveznek. A TDD egy strukturált ciklus ismétléséből áll, amely segít a programozóknak, hogy az összetett funkcionalitást darabonként építsék fel, ne pedig egyszerre az egészet. A ciklus a következőképpen írható le:

  1. Adj hozzá egy tesztet, amely leírja a kívánt funkcionalitás egy darabját, amely jelenleg hiányzik a kódodból.
  2. Futtasd le a teszteket, hogy ellenőrizd, az újonnan hozzáadott teszt elbukik.
  3. Frissítsd a meglévő kódodat, amíg:
    • az összes régi teszt továbbra is sikeres nem lesz;
    • az új teszt is sikeres nem lesz.
  4. Tisztítsd meg a kódodat, és győződj meg róla, hogy minden teszt továbbra is sikeres. Ez általában a változók átnevezését, a duplikált logikarészek eltávolítását, a bennmaradt logolás törlését és hasonlókat jelenti.
  5. Térj vissza az 1. lépéshez, amíg fel nem épül a teljes kívánt funkcionalitás!

Az ebben a kurzusban található tesztfájlok az összes olyan tesztet tartalmazzák, amelyen a megoldásodnak át kell mennie ahhoz, hogy érvényesnek számítson. Ez elsőre nem tűnik összeegyeztethetőnek a fent leírt ciklussal, amelyben a teszteket egyenként írjuk. A tesztek írásához használt eszközünk, a JUnit azonban biztosít egy @Disabled annotációt, amellyel egy már megírt teszt ideiglenesen kihagyható. Ezzel az annotációval biztosítjuk, hogy a neked átadott tesztfájlok megfeleljenek a következő szabályoknak:

  • Bármelyik tesztfájl első tesztje alapértelmezés szerint nincs kihagyva.
  • Bármelyik tesztfájlban az első kivételével minden teszt alapértelmezés szerint ki van hagyva.

Így szimulálhatod a TDD-ciklust, ha követed ezeket a némileg módosított lépéseket:

  1. Futtasd le a teszteket, hogy ellenőrizd, jelenleg legfeljebb egy teszt bukik el.
  2. Frissítsd a meglévő kódodat, amíg az összes nem kihagyott teszt sikeres nem lesz.
  3. Tisztítsd meg a kódodat, és győződj meg róla, hogy az összes nem kihagyott teszt továbbra is sikeres.
  4. Távolítsd el a tesztfájl legfelső @Disabled annotációját.
  5. Térj vissza az 1. lépéshez, amíg nem marad kihagyott teszt, és minden teszt sikeres nem lesz!

Forrás

Fedezd fel a feladat forrását.

Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
Java Exercism

Készen állsz elkezdeni a(z) Two Fer feladatot?

Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Java nyelvet 26 fogalom158 feladat segítségével, valódi emberi mentorálással, mindez ingyen.