Test de excepție așteptat JUnit: @Test (așteptat)

JUnit oferă facilitatea de a urmări excepția și, de asemenea, pentru a verifica dacă codul aruncă sau nu excepția așteptată.

Junit4 oferă un mod ușor și lizibil de testare a excepțiilor, pe care îl puteți utiliza

  • Parametru opțional (așteptat) al adnotării @test și
  • Pentru a urmări informațiile, se poate utiliza „fail ()”

În timp ce testați excepția, trebuie să vă asigurați că clasa de excepție pe care o furnizați în acel parametru opțional al adnotării @test este aceeași. Acest lucru se datorează faptului că vă așteptați la o excepție de la metoda în care testați unitatea, altfel testul nostru JUnit ar eșua.

Exemplu @ Test (așteptat = IllegalArgumentException.class)

Utilizând parametrul „așteptat”, puteți specifica numele excepției pe care testul nostru îl poate arunca. În exemplul de mai sus, utilizați „ IllegalArgumentException” care va fi aruncat de test dacă un dezvoltator folosește un argument care nu este permis.

Exemplu folosind @test (așteptat)

Să înțelegem testarea excepțiilor prin crearea unei clase Java cu o metodă care aruncă o excepție. O veți ocupa și o veți testa într-o clasă de testare. Luați în considerare JUnitMessage.java având o metodă care face pur și simplu o operație matematică pe baza intrărilor primite de utilizator. Dacă s-ar introduce vreun argument ilegal, acesta va arunca „ArithmeticException . Vezi mai jos:

pachet guru99.junit;public class JUnitMessage {mesaj privat String;public JUnitMessage (mesaj String) {this.message = mesaj;}public void printMessage () {System.out.println (mesaj);int divide = 1/0;}public String printHiMessage () {mesaj = "Bună!" + mesaj;System.out.println (mesaj);returnează mesajul;}}

Explicatie cod:

  • Linia de cod 7: Crearea unui constructor parametrizat cu inițializarea câmpului.
  • Linia de cod 11-14: Crearea unei metode de operare matematică.
  • Linia de cod 18: Crearea unei alte metode pentru a imprima un mesaj.
  • Linia de cod 20: Crearea unui șir nou pentru a imprima un mesaj.
  • Linia de cod 21: Tipărirea mesajului nou creat în linia 20.

Să creăm o clasă de test pentru clasa java de mai sus pentru a verifica excepția.

Vedeți mai jos clasa de testare la excepția de testare a unității (ArithmeticException aici) aruncând din clasa java de mai sus:

AirthematicTest.java

pachet guru99.junit;import org.junit.Assert.assertEquals static;import org.junit.Test;public class AirthematicTest {public String message = "Saurabh";JUnitMessage junitMessage = nou JUnitMessage (mesaj);@Test (asteptat = ArithmeticException.class)public void testJUnitMessage () {System.out.println ("Junit Message tipărește");junitMessage.printMessage ();}@Testpublic void testJUnitHiMessage () {mesaj = "Bună!" + mesaj;System.out.println ("Junit Message tipărește");assertEquals (mesaj, junitMessage.printMessage ());}}

Explicatie cod:

  • Linia de cod 13: Utilizarea adnotării @Test pentru a crea testul nostru. Pe măsură ce executați metoda claselor de mai sus, aceasta va invoca o operație matematică. Aici este de așteptat excepția aritmetică, așa că o listați ca parametru în @Test.
  • Linia de cod 17: Invocarea printMessage () JUnitMessage.java
  • Linia de cod 18: Crearea unei alte metode pentru a imprima mesajul HI.

Dacă executați această clasă de testare, metoda de testare este executată cu fiecare parametru definit. În exemplul de mai sus, metoda de testare este executată de cinci ori.

Să-l executăm și să verificăm rezultatul. Vedeți mai jos clasa de test runner pentru a executa JunitTestExample.java

Ieșire:

Iată rezultatul care arată testul reușit, fără urmă de eșec, după cum se arată mai jos:

Rezumat:

  • Testarea excepțiilor este o caracteristică specială introdusă în JUnit4. În acest tutorial, ați învățat cum să testați excepția în JUnit folosind @test (exceptat)
  • Junit oferă facilitatea de a urmări excepția și, de asemenea, de a verifica dacă codul aruncă excepție sau nu
  • Pentru testarea excepțiilor, puteți utiliza
    • Parametru opțional (așteptat) al adnotării @test și
    • Pentru a urmări informațiile, se poate utiliza „fail ()”

Articole interesante...