JUnit Verwachte uitzonderingstest: @Test (verwacht)

Inhoudsopgave:

Anonim

JUnit biedt de mogelijkheid om de uitzondering te traceren en ook om te controleren of de code de verwachte uitzondering genereert of niet.

Junit4 biedt een gemakkelijke en leesbare manier voor het testen van uitzonderingen die u kunt gebruiken

  • Optionele parameter (verwacht) van @test-annotatie en
  • Om de informatie te traceren, kan "fail ()" worden gebruikt

Tijdens het testen van een uitzondering, moet u ervoor zorgen dat de uitzonderingsklasse die u opgeeft in die optionele parameter van @test-annotatie, hetzelfde is. Dit komt omdat u een uitzondering verwacht van de methode die u aan het testen bent, anders zou onze JUnit-test mislukken.

Voorbeeld @ Test (verwacht = IllegalArgumentException.class)

Door de "verwachte" parameter te gebruiken, kunt u de uitzonderingsnaam specificeren die onze test kan genereren. In het bovenstaande voorbeeld gebruikt u " IllegalArgumentException" die door de test wordt gegenereerd als een ontwikkelaar een argument gebruikt dat niet is toegestaan.

Voorbeeld met @test (verwacht)

Laten we het testen van uitzonderingen begrijpen door een Java-klasse te maken met een methode die een uitzondering genereert. Je gaat ermee om en test het in een testles. Overweeg dat JUnitMessage.java een methode heeft die eenvoudig een wiskundige bewerking uitvoert op basis van de invoer die door de gebruiker is ontvangen. Als een ongeldig argument zou worden ingevoerd, zal het "ArithmeticException " gooien . Zie hieronder:

pakket guru99.junit;openbare klasse JUnitMessage {privé String-bericht;public JUnitMessage (String-bericht) {this.message = bericht;​openbare ongeldige printMessage () {System.out.println (bericht);int verdelen = 1/0;​openbare String printHiMessage () {message = "Hallo!" + bericht;System.out.println (bericht);terug bericht;​​

Code Verklaring:

  • Coderegel 7: een constructor met parameters maken met veldinitialisatie.
  • Coderegel 11-14: een methode creëren voor wiskundige bewerkingen.
  • Coderegel 18: een andere methode creëren om een ​​bericht af te drukken.
  • Coderegel 20: een nieuwe tekenreeks maken om een ​​bericht af te drukken.
  • Code Regel 21: Afdrukken nieuw bericht aangemaakt in regel 20.

Laten we een testklasse maken voor de bovenstaande Java-klasse om de uitzondering te verifiëren.

Zie hieronder testklasse naar eenheidstestuitzondering (ArithmeticException hier) gooien van boven Java-klasse:

AirthematicTest.java

pakket guru99.junit;importeer statische org.junit.Assert.assertEquals;importeer org.junit.Test;openbare klasse AirthematicTest {public String message = "Saurabh";JUnitMessage junitMessage = nieuwe JUnitMessage (bericht);@Test (verwacht = ArithmeticException.class)openbare ongeldige testJUnitMessage () {System.out.println ("Junit Message wordt afgedrukt");junitMessage.printMessage ();​@Testopenbare ongeldige testJUnitHiMessage () {message = "Hallo!" + bericht;System.out.println ("Junit Message wordt afgedrukt");assertEquals (bericht, junitMessage.printMessage ());​​

Code Verklaring:

  • Coderegel 13: @Test-annotatie gebruiken om onze test te maken. Terwijl u de bovenstaande klassenmethode uitvoert, wordt een wiskundige bewerking aangeroepen. Hier wordt een rekenkundige uitzondering verwacht, dus u vermeldt deze als een parameter in @Test.
  • Coderegel 17: aanroepen van printMessage () JUnitMessage.java
  • Coderegel 18: een andere methode creëren om een ​​HI-bericht af te drukken.

Als u deze testklasse uitvoert, wordt de testmethode uitgevoerd met elke gedefinieerde parameter. In bovenstaand voorbeeld wordt de testmethode vijf keer uitgevoerd.

Laten we het uitvoeren en het resultaat verifiëren. Zie hieronder de testrunner- klasse om JunitTestExample.java uit te voeren

Uitgang:

Hier is de uitvoer die een succesvolle test laat zien zonder foutopsporing, zoals hieronder weergegeven:

Overzicht:

  • Uitzonderingstesten is een speciale functie die in JUnit4 is geïntroduceerd. In deze zelfstudie hebt u geleerd hoe u een uitzondering in JUnit kunt testen met @test (uitgezonderd)
  • Junit biedt de mogelijkheid om de uitzondering te traceren en ook om te controleren of de code een uitzondering genereert of niet
  • Voor het testen van uitzonderingen kunt u
    • Optionele parameter (verwacht) van @test-annotatie en
    • Om de informatie te traceren, kan "fail ()" worden gebruikt