JUnit forventet unntakstest: @Test (forventet)

Innholdsfortegnelse:

Anonim

JUnit gir muligheten til å spore unntaket og også for å sjekke om koden kaster forventet unntak eller ikke.

Junit4 gir en enkel og lesbar måte for unntakstesting, du kan bruke

  • Valgfri parameter (forventet) for @test-kommentar og
  • For å spore informasjonen kan "fail ()" brukes

Mens du tester unntak, må du sørge for at unntaksklassen du gir i den valgfrie parameteren for @test-kommentar, er den samme. Dette er fordi du forventer et unntak fra metoden du enhetstester, ellers mislyktes vår JUnit-test.

Eksempel @ Test (forventet = IllegalArgumentException.class)

Ved å bruke "forventet" parameter kan du spesifisere unntaksnavnet som testen vår kan kaste. I eksemplet ovenfor bruker du " IllegalArgumentException" som blir kastet av testen hvis en utvikler bruker et argument som ikke er tillatt.

Eksempel på bruk av @test (forventet)

La oss forstå unntakstesting ved å lage en Java-klasse med en metode som kaster et unntak. Du vil håndtere det og teste det i en testklasse. Tenk på at JUnitMessage.java har en metode som ganske enkelt utfører en matematisk operasjon basert på input som er mottatt av brukeren. Hvis noe ulovlig argument ville bli ført, vil det kaste "ArithmeticException " . Se nedenfor:

pakke guru99.junit;offentlig klasse JUnitMessage {privat strengmelding;offentlig JUnitMessage (strengmelding) {denne meldingen = melding;}public void printMessage () {System.out.println (melding);int divide = 1/0;}offentlig strengutskriftHiMessage () {message = "Hei!" + melding;System.out.println (melding);returmelding;}}

Kode Forklaring:

  • Kodelinje 7: Opprette en parameterisert konstruktør med initialisering av felt.
  • Kodelinje 11-14: Opprette en metode for matematisk drift.
  • Kodelinje 18: Opprette en annen metode for å skrive ut en melding.
  • Kodelinje 20: Opprette en ny streng for å skrive ut en melding.
  • Kodelinje 21: Utskrift av ny melding opprettet i linje 20.

La oss lage en testklasse for ovennevnte Java-klasse for å bekrefte unntak.

Se under testklasse til unntakstest unntak (ArithmeticException her) kaste ovenfra java klasse:

AirthematicTest.java

pakke guru99.junit;importer statisk org.junit.Assert.assertEquals;import org.junit.Test;offentlig klasse AirthematicTest {offentlig strengmelding = "Saurabh";JUnitMessage junitMessage = ny JUnitMessage (melding);@Test (forventet = ArithmeticException.class)offentlig ugyldig testJUnitMessage () {System.out.println ("Junit Message skrives ut");junitMessage.printMessage ();}@Testoffentlig ugyldig testJUnitHiMessage () {message = "Hei!" + melding;System.out.println ("Junit Message skrives ut");assertEquals (melding, junitMessage.printMessage ());}}

Kode Forklaring:

  • Kodelinje 13: Bruk @Test-kommentar for å lage vår test. Når du kjører over klassemetoden, vil den påkalle en matematisk operasjon. Her forventes Aritmetisk unntak, så du oppfører det som en parameter i @Test.
  • Kodelinje 17: Påkalle printMessage () JUnitMessage.java
  • Kodelinje 18: Opprette en annen metode for å skrive ut HI-meldinger.

Hvis du utfører denne testklassen, blir testmetoden utført med hver definert parameter. I eksemplet ovenfor blir testmetoden utført fem ganger.

La oss utføre det og verifisere resultatet. Se nedenfor testløperklassen for å utføre JunitTestExample.java

Produksjon:

Her er utgangen som viser vellykket test uten feilsporing som gitt nedenfor:

Sammendrag:

  • Unntakstesting er en spesiell funksjon introdusert i JUnit4. I denne opplæringen har du lært hvordan du tester unntak i JUnit ved hjelp av @test (unntatt)
  • Junit tilbyr muligheten til å spore unntaket og også for å sjekke om koden kaster unntak eller ikke
  • For unntakstesting kan du bruke
    • Valgfri parameter (forventet) for @test-kommentar og
    • For å spore informasjonen kan "fail ()" brukes