CodeGym /Java tanfolyam / /Kapcsolódó projekt: tesztelés és naplózás

Kapcsolódó projekt: tesztelés és naplózás

Szint , Lecke
Elérhető

Ez a program egy hippodrom utánzata

Először is, az előző projekthez hasonlóan, készíts magadnak egy villát a tárolóból: https://github.com/CodeGymCC/hippodrome , és klónozd ezt a villát magad.

Az Ön feladata a tesztelés és a naplózás hozzáadása.

A kötelező vizsgálatok listája

Az alábbi listában minden tételt külön vizsgálati módszerként kell megvalósítani. A vizsgálati módszerek megnevezésekor törekedjünk tömören, de ugyanakkor úgy, hogy nagyjából megértsük, mit is tesztelnek bennük. Hasonlítsa össze például ezt a két teszteredményt:

A második esetben nehezebb megérteni, hogy milyen tesztek nem mentek át, és meg kell néznie a naplókat.

1. Lóosztály:

  1. konstruktőr
    • Ellenőrizze, hogy a konstruktornak első paraméterként történő átadáskor a rendszer IllegalArgumentExceptiondob-e null. Ehhez használja a módszert assertThrows;
    • Ellenőrizze, hogy a konstruktornak első paraméterként történő átadáskor nulla kidobott kivétel a „Név nem lehet null” üzenetet tartalmazza-e. Ehhez üzenetet kell kapnia a fogott kivételtől, és a assertEquals;
    • Ellenőrizze, hogy ha üres karakterláncot vagy csak szóköz karaktereket (szóköz, tabulátor stb.) tartalmazó karakterláncot ad át első paraméterként a konstruktornak, a . fog dobni IllegalArgumentException. A szóközkarakterek különböző változataival való teszteléshez a tesztet paraméterezetté kell tenni;
    • Ellenőrizze, hogy ha üres karakterláncot vagy csak szóköz karaktereket (szóköz, tabulátor stb.) tartalmazó karakterláncot ad át a konstruktornak első paraméterként, akkor a kidobott kivétel a "Név nem lehet üres."
    • Ellenőrizze, hogy amikor negatív számot adunk át a konstruktornak második paraméterként, IllegalArgumentException;
    • Ellenőrizze, hogy ha negatív számot ad át a konstruktornak második paraméterként, a kidobott kivétel tartalmazza-e a "Sebesség nem lehet negatív." üzenetet;
    • Ellenőrizze, hogy ha negatív számot adunk át a konstruktornak harmadik paraméterként, IllegalArgumentException;
    • Ellenőrizze, hogy ha negatív számot ad át harmadik paraméterként a konstruktornak, a kidobott kivétel tartalmazza-e a "A távolság nem lehet negatív." üzenetet;
  2. getName metódus
    • Ellenőrizze, hogy a metódus visszaadja-e az első paraméterként átadott karakterláncot a konstruktornak;
  3. getSpeed ​​módszer
    • Ellenőrizze, hogy a metódus visszaadja-e a második paraméterként átadott számot a konstruktornak;
  4. getDistance módszer
    • Ellenőrizze, hogy a metódus visszaadja-e a harmadik paraméterként átadott számot a konstruktornak;
    • Ellenőrizze, hogy a metódus nullát ad-e vissza, ha az objektumot két paraméteres konstruktor segítségével hozták létre;
  5. mozgatási módszer
    • getRandomDoubleEllenőrizze, hogy a metódus a 0.2 és 0.9 paraméterű metóduson belül hívja-e meg . Ehhez MockedStatica módszerét kell használni verify;
    • Ellenőrizze, hogy a módszer hozzárendeli-e a következő képlettel számított távolságértéket: distance + speed * getRandomDouble(0.2, 0.9). Ehhez zárolni kell, getRandomDoublehogy bizonyos értékeket adjon vissza, amelyeket a teszt paraméterezésével kell beállítani.

2. Hippodrome osztály:

  1. Konstruktőr
    • Ellenőrizze, hogy a konstruktornak történő átadáskor IllegalArgumentExceptiona null;
    • Ellenőrizze, hogy a konstruktornak történő átadáskor nulla kidobott kivétel tartalmazza-e a "A lovak nem lehetnek nullák."
    • Ellenőrizze, hogy amikor üres listát adunk át a konstruktornak, a IllegalArgumentException;
    • Ellenőrizze, hogy amikor üres listát ad át a konstruktornak, a dobott kivétel tartalmazza-e a "A lovak nem lehetnek üresek" üzenetet;
  2. getHorses módszer
    • Ellenőrizze, hogy a metódus olyan listát ad-e vissza, amely ugyanazokat az objektumokat tartalmazza, és ugyanabban a sorrendben, mint a konstruktornak átadott lista. A Hippodrome objektum létrehozásakor adjon át egy 30 különböző lóból álló listát a konstruktornak;
  3. mozgatási módszer
    • Ellenőrizze, hogy a metódus minden lónál meghívja-e a move metódust. A Hippodrome objektum létrehozásakor adjon át egy 50 állóból álló listát a konstruktornak, és használja a verify.
  4. getWinner módszer
    • Ellenőrizze, hogy a metódus a legnagyobb távolságértékkel rendelkező lovat adja vissza.

3. Főosztály

  1. fő módszer
    • Ellenőrizze, hogy a módszer végrehajtása nem haladja meg a 22 másodpercet. Ehhez használja az Időkorlát megjegyzést. A teszt megírása után tiltsa le (használja a Letiltva megjegyzést). Így nem vesz igénybe időt az összes teszt futtatása, és ha szükséges, manuálisan is futtatható.

Amit naplózni kell

1. Főosztály:

  1. A hippodrom objektum létrehozása után adjon hozzá egy ilyen bejegyzést a naplóhoz:2022-05-31 17:05:26,152 INFO Main: Start of the race. Number of participants: 7
  2. A nyertesekkel kapcsolatos információk megjelenítése után adjon hozzá egy ilyen bejegyzést a naplóhoz:2022-05-31 17:05:46,963 INFO Main: End of the race. Winner: Cherry

Hippodrome osztály:

  1. Ha nullát adtunk át a konstruktornak, akkor a kivétel dobása előtt adjunk hozzá egy ilyen bejegyzést a naplóhoz:2022-05-31 17:29:30,029 ERROR Hippodrome: Horses list is null
  2. b. Ha üres listát adtak át a konstruktornak, akkor a kivétel kidobása előtt adjon hozzá egy ilyen bejegyzést a naplóhoz:2022-05-31 17:30:41,074 ERROR Hippodrome: Horses list is empty
  3. A konstruktor végén adjon hozzá egy ilyen bejegyzést a naplóhoz:2022-05-31 17:05:26,152 DEBUG Hippodrome: Created a Hippodrome with [7] horses

3. Lóosztály:

  1. Ha név helyett nullát adunk át a konstruktornak, akkor a kivétel megadása előtt adjunk hozzá egy bejegyzést a naplóba, például:2022-05-31 17:34:59,483 ERROR Horse: Name is null
  2. Ha a konstruktornak átadott név üres, akkor a kivétel dobása előtt adjon hozzá egy ilyen bejegyzést a naplóhoz:2022-05-31 17:36:44,196 ERROR Horse: Name is blank
  3. Ha a konstruktornak átadott sebesség kisebb, mint nulla, akkor a kivétel dobása előtt adjon hozzá egy ilyen bejegyzést a naplóhoz:2022-05-31 17:40:27,267 ERROR Horse: Speed is negative
  4. Ha a konstruktornak átadott távolság kisebb, mint nulla, akkor a kivétel megadása előtt adjon hozzá egy ilyen bejegyzést a naplóhoz:2022-05-31 17:41:21,938 ERROR Horse: Distance is negative
  5. A konstruktor végén adjon hozzá egy ilyen bejegyzést a naplóhoz:2022-05-31 17:15:25,842 DEBUG Horse: Created a Horse named [Lobster] with speed [2.8]

A naplókat a hippodrome.log fájlba kell írni , amelynek a projektgyökérben kell lennie a naplók mappájában . Minden nap át kell nevezni a fájlt a hippodrome.2021-12-31.log minta szerint, és létre kell hozni helyette egy új hippodrome.log fájlt . Ehhez használja a RollingFile függeléket . Ebben az esetben a 7 napnál régebbi fájlokat törölni kell. Ehhez használhat egy konstrukciót, például:

<DefaultRolloverStrategy>
    <Delete>
        <IfFileName/>
        <IfLastModified/>
    </Delete>
</DefaultRolloverStrategy>

Megkerestem a Google-ban, hogy mivel helyettesítsem három pont helyett.😊


Projektelemzés . Végzés után nézd meg!

Hozzászólások
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION