what is junit test fixture
Denne opplæringen vil forklare når, hvorfor og hvordan du bruker JUnit Test Fixture med enkle JUnit Test Fixture-eksempler for enkel forståelse av konseptet:
Vi vil lære -
- Når og hvorfor har vi behov for å bruke Test Fixture?
- Hva er tilnærmingen for å bruke den i koden vår for JUnit-testen?
- Et par eksempler for å forstå begrepet ‘Test Fixture’ parallelt med et forsprang på JUnit 4 livssykluskommentarer som @Before, @After, @BeforeClass, @AfterClass og @Test.
=> Sjekk ALLE JUnit-veiledninger her.
Hva du vil lære:
JUnit Test Fixture
Når det er flere testtilfeller i en JUnit-klasse, kan det være et felles objekt eller objekter som brukes av alle testsakene. I dette tilfellet kan det være spesifikke funksjoner som kan være vanlige i alle testtilfellene.
Dette betyr ikke at testobjektene må deles av alle testtilfellene. Endringen av objektet som er gjort i en test, trenger ikke deles på tvers av alle testene, ettersom disse testene er uavhengige og kan utføres i en annen rekkefølge i henhold til deres prioritetssett.
beste gratis rengjøringsprogramvare for Windows 10
Den helhetlige forståelsen av begrepet “Test Fixture” er en fast tilstand i en kode eller et sett med faste trinn i en kode som brukes som en forutsetning og få andre sett med trinn som brukes som ettertilstand for alle testene.
Dermed, med andre ord, identifiserer vi de settene med utsagn som vil gjenta for alle tester, og dermed prøve å sette et fast miljø for at testmetodene våre skal kjøres.
De hensikt å bruke Test Fixture er å eliminere duplisering av den vanlige koden for alle testkassene.
er nettverkssikkerhetsnøkkel det samme som passord
La oss prøve å forstå den praktiske implementeringen av testinnretningen i en JUnit-test.
setUp () -metoden
- Det er tester som trenger initialisering av visse objekter (streng, heltall eller ArrayList eller et hvilket som helst objekt for den saks skyld). Du kan lage en metode offentlig ugyldig setUp () der du kan erklære forekomstvariablene for de vanlige objektene. Plasser denne setUp () -metoden under kommentaren @Før . Med @Before-merknaden vil rammeverket kjøre metoden setUp () før hver eksekvering av testsaker.
- SetUp () -metoden kan også brukes i tilfelle du ønsker å starte en nettleser med en spesifikk URL som det første trinnet du kjører en testtilfelle som følger innlogging til applikasjonen med forhåndsdefinerte legitimasjonsbeskrivelser.
tearDown () -metoden
- Hvis du har tildelt eksterne ressurser i en test, bør du huske å frigjøre ressursene også. Nedrivningsmetoden () kan legges til for opprydding av objektene etter at testutførelsen er fullført. På en lignende måte som setUp () -metoden, legg til en metode offentlig ugyldig nedbrytning () under @Etter kommentar. JUnit-rammeverket sørger for at metoden under @After sikkert utføres etter at hver testtilfelle er kjørt. Objektene som er brukt opp i testen må settes NULL i nedrivningsmetoden () slik at søppelet fra testene blir samlet opp.
- En annen god kandidat for opprydding av objektene dreper en nettleser i aksjon etter at testsaken er fullført og frigjør minnet ved å ødelegge de brukte objektene.
- Metodenavnene setUp () og tearDown () er bare et brukerdefinert navn. Du kan angi hvilket som helst metodenavn du vil. Det er bare merknadene som brukes med metoden som bestemmer rekkefølgen av testkjøringen.
Eksempler på JUnit Test Fixture
I denne delen vil vi gå gjennom to eksempler på JUnit 4-testen og prøve å forstå hvordan vi bruker tilnærmingen til Test Fixtures i koden vår sammen med sekvensen av forskjellige livssykluskommentarer @Before, @After, @BeforeClass, @AfterClass, og @Test.
Selvfølgelig vil det være en egen veiledning om merknader som vil avklare hva dette er og hvordan hver av kommentarene fungerer. Fra nå av, la oss holde oss til forståelsen av Test Fixture-bruken i koden.
JUnit 4 Test - Eksempel 1
I dette eksemplet vil vi ha testinnretningene i klassen med tre testtilfeller. SetUp () -metoden med @Before-kommentar og tearDown () -metoden med @After-merknaden.
Kode:
package demo.tests; import static org.junit.Assert.*; import org.junit.After; import org.junit.Before; import org.junit.Test; public class JUnitProgram { @Before public void setUp() { System.out.println('_______________________________________________________
'); System.out.println('This is the setUp() method that runs before each testcase'); } @Test public void test_JUnit1() { System.out.println('This is the testcase test_JUnit1() in this class'); } @Test public void test_JUnit2() { System.out.println('This is the testcase test_JUnit2() in this class'); } @Test public void test_JUnit3() { System.out.println('This is the testcase test_JUnit3() in this class'); } @After public void tearDown() { System.out.println('This is the tearDown() method that runs after each testcase'); System.out.println('_______________________________________________________
'); } }
Det resulterende konsollvinduet vil være som vist nedenfor:
Konsollvinduet gjør det åpenbart at setUp () -metoden kjøres før hver testkjøring, og når hver test er fullført, kjøres tearDown () -metoden.
Dermed er sekvensen for utførelse per kommentar for hver testmetode:
- @Før
- @Test
- @Etter
Husk at testene her, har blitt utført i sekvensiell rekkefølge, dvs. test_JUnit1 (), test_JUnit2 (), test_JUnit3 (), det er ingen definert sekvens for testen, derfor kan de utføres i hvilken som helst rekkefølge. Hver test er isolert fra den andre testen.
JUnit 4 Test - Eksempel 2
Her skal vi raskt se hvordan vi kan ha en metode som kjører en gang for aller første gang i en klasse, og en annen metode som kjører en gang etter at alle testene er utført for klassen.
Kode:
package demo.tests; import static org.junit.Assert.*; import org.junit.After; import org.junit.Before; import org.junit.Test; public class JUnitProgram { @BeforeClass public static void preClass() { System.out.println('This is the preClass() method that runs one time before the class'); } @Before public void setUp() { System.out.println('_______________________________________________________
'); System.out.println('This is the setUp() method that runs before each testcase'); } @Test public void test_JUnit1() { System.out.println('This is the testcase test_JUnit1() in this class'); } @Test public void test_JUnit2() { System.out.println('This is the testcase test_JUnit2() in this class'); } @Test public void test_JUnit3() { System.out.println('This is the testcase test_JUnit3() in this class'); } @After public void tearDown() { System.out.println('This is the tearDown() method that runs after each testcase'); System.out.println('_______________________________________________________
'); } @AfterClass public static void postClass() { System.out.println('This is the postClass() method that runs one time after the class'); } }
Vi har lagt til preClass () -metoden under @BeforeClass-kommentar. Denne metoden kjører bare en gang for en klasse før testen utføres. Den kjører selv før metoden under @Before kjøres.
PostClass () -metoden under @AfterClass-merknaden kjører en gang til slutt når alle testene inkludert testen under @After er utført og fullført.
Testkjøringen er som følger:
- @BeforeClass
- @Før
- @Test
- @Etter
- @Etter timen
Metodene under @BeforeClass og @AfterClass deles ofte av klassen, og det er derfor hvis metodene ikke blir erklært som statisk så gir det en initialiseringsfeil ved gjennomføring av testen.
hva er iomanip i c ++
Se skjermbildet nedenfor, der vi ikke har angitt preClass () -metoden under @BeforeClass-kommentar som statisk og dermed har testen feilet ved utførelse.
Du ser kanskje resultatet som viser initialiseringsfeil som kan elimineres ved å markere metoden som statisk. Det samme gjelder metoden postClass () under @AfterClass-kommentar.
Konklusjon
Vi har prøvd å sette en kontekst på god programmeringspraksis som skal følges ved å implementere Test inventar tilnærming og en grunnleggende forståelse av bruk og sekvens av utførelse for livssykluskommentarene.
I vår neste opplæring lærer vi om forskjellige måter å utføre JUnit-tester på i formørkelse. Så hold deg oppdatert til serien når vi går videre med mer interessante aspekter av JUnit.
=> Sjekk her for å se AZ av JUnit opplæringsveiledninger her.
Anbefalt lesing
- JUnit-tester: Hvordan skrive JUnit-testtilfeller med eksempler
- JUnit Tutorial for nybegynnere - Hva er JUnit-testing
- Python DateTime Tutorial med eksempler
- Java String inneholder () Metodeopplæring med eksempler
- C # Bruk av uttalelse og C # Veiledning for virtuell metode med eksempler
- Introduksjon til JUnit Framework and Its Usage in Selenium Script - Selenium Tutorial # 11
- Selen Find Element By Text Tutorial med eksempler
- Java Array Length Tutorial With Code Eksempler