what is junit test fixture
Denne vejledning forklarer, hvornår, hvorfor og hvordan man bruger JUnit Test Fixture med enkle JUnit Test Fixture eksempler til din nemme forståelse af konceptet:
Vi lærer -
- Hvornår og hvorfor har vi behovet for at bruge Test Fixture?
- Hvad er tilgangen til at bruge det i vores kode til JUnit-testen?
- Et par eksempler til forståelse af udtrykket 'Test Fixture' er parallelt kaskaderet med et forspring på JUnit 4-livscykluskommentarer som @Before, @After, @BeforeClass, @AfterClass og @Test.
=> Tjek ALLE JUnit-vejledninger her.
Hvad du lærer:
JUnit Test Fixture
Når der er flere testsager i en JUnit-klasse, kan der være et eller flere fælles objekter, der bruges af alle testsagerne. I dette tilfælde kan der være specifikke funktioner, der kan være almindelige i alle testsagerne.
Dette betyder ikke, at testobjekterne skal deles af alle testsagerne. Ændringen af objektet foretaget i en test behøver ikke at blive delt på tværs af alle testene, da disse tests er uafhængige og kan udføres i en anden rækkefølge i henhold til deres prioritetssæt.
belastningstest vs ydelsestest vs stresstest
Den holistiske forståelse af udtryk 'Test Fixture' er en fast tilstand i en kode eller et sæt faste trin i en kode, der bruges som en forudsætning og få andre sæt trin, der bruges som postcondition til alle testene.
Således identificerer vi med andre ord de sæt sætninger, der vil gentages for alle tests og derved prøve at indstille et fast miljø for vores testmetoder til at køre.
Det formål ved at bruge Test Fixture er at eliminere duplikering af den fælles kode for alle testkasser.
pl sql interview spørgsmål med svar
Lad os prøve at forstå den praktiske implementering af testarmaturet i en JUnit-test.
setUp () metode
- Der er tests, der kræver initialisering af bestemte objekter (streng, heltal eller ArrayList eller ethvert objekt for den sags skyld). Du kan oprette en metode public void setUp () hvor du kunne erklære instansvariablerne for de almindelige objekter. Placer denne setUp () -metode under kommentaren @Før . Med @Før-annoteringen kører rammen metoden setUp () før hver eksekvering af testsag.
- SetUp () -metoden kan også bruges, hvis du ønsker at starte en browser med en bestemt URL som det første trin, du kører en testcase, der følger login til applikationen med foruddefinerede legitimationsoplysninger.
tearDown () metode
- Hvis du har tildelt eksterne ressourcer i en test, skal du huske at frigøre ressourcerne også. Nedrivningsmetoden () kan tilføjes til oprydning af objekterne, efter at eksekveringen af testsagen er afsluttet. På samme måde som metoden setUp () skal du tilføje en metode offentlig ugyldig nedrivning () under @Efter kommentar. JUnit-rammen sørger for, at metoden under @After sikkert udføres, efter at hver testcase er kørt. Objekterne brugt op i testen skal indstilles NULL i nedrivningsmetoden (), så affaldet fra testene bliver samlet.
- En anden god kandidat til oprydning af objekterne dræber en browser i aktion, efter at testsagen er afsluttet og frigør hukommelsen ved at ødelægge de brugte objekter.
- Metodenavnene setUp () og tearDown () er bare et brugerdefineret navn. Du kan indstille ethvert metodenavn, du ønsker. Det er kun kommentarerne, der bruges med metoden, der bestemmer rækkefølgen af testkørslen.
Eksempler på JUnit Test Fixture
I dette afsnit vil vi gennemgå to eksempler på JUnit 4-testen og forsøge at forstå, hvordan man bruger tilgangen til Test Fixtures i vores kode sammen med rækkefølgen af forskellige livscyklusanmærkninger @Before, @After, @BeforeClass, @AfterClass, og @Test.
Selvfølgelig vil der være en separat tutorial om annoteringer, der vil afklare, hvad disse er, og hvordan hver af kommentarerne fungerer. Lad os lige nu holde os til forståelsen af brugen af test Fixture i koden.
JUnit 4 Test - Eksempel 1
I dette eksempel vil vi have testarmaturerne i klassen med tre testcases. Metoden setUp () med @Before-annotering og tearDown () -metoden med @After-kommentaren.
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 konsolvindue vil være som vist nedenfor:
Konsolvinduet gør det indlysende, at setUp () -metoden udføres før hver testkørsel, og efter hver test er gennemført, køres tearDown () -metoden.
Således er sekvensen for eksekvering pr. Kommentar for hver testmetode:
- @Før
- @Prøve
- @Efter
Husk, at testene her, men er udført i sekventiel rækkefølge, dvs. test_JUnit1 (), test_JUnit2 (), test_JUnit3 (), der er ingen sekvens defineret til testen, derfor kan de udføres i en hvilken som helst rækkefølge. Hver test er isoleret fra den anden test.
JUnit 4 Test - Eksempel 2
Her skal vi hurtigt se, hvordan vi kan have en metode, der kører en gang for første gang i en klasse, og en anden metode, der kører en gang, efter at alle testene er udfø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 tilføjet preClass () -metoden under @BeforeClass-kommentar. Denne metode kører kun én gang for en klasse, før testen udføres. Det kører selv før metoden under @Before udføres.
Metoden postClass () under @AfterClass-kommentar kører en gang i slutningen, når alle testene inklusive testen under @After udføres og afsluttes.
Testkørselens rækkefølge er som følger:
- @BeforeClass
- @Før
- @Prøve
- @Efter
- @Efter skole
Metoderne under @BeforeClass og @AfterClass deles almindeligvis af klassen, hvorfor hvis metoderne ikke erklæres som statisk så giver det en initialiseringsfejl ved udførelse af testen.
hvordan man installerer maven i formørkelse
Se nedenstående skærmbillede, hvor vi ikke har indstillet preClass () -metoden under @BeforeClass-kommentar som statisk og dermed har testen fejlet ved udførelsen.
Du kan muligvis se resultatet, der viser initialiseringsfejl, som kunne elimineres ved markering af metoden som statisk. Det samme gælder metoden postClass () under @AfterClass-kommentar.
Konklusion
Vi har forsøgt at sætte en kontekst for den gode programmeringspraksis, der skal følges ved implementering af Test armatur tilgang og en grundlæggende forståelse af brug og sekvens af eksekvering til livscykluskommentarer.
I vores næste vejledning lærer vi om forskellige måder at udføre JUnit-test på i formørkelse. Så hold øje med serien, når vi udvikler os med mere interessante aspekter af JUnit.
=> Tjek her for at se AZ af JUnit-træningsvejledninger her.
Anbefalet læsning
- JUnit-test: Sådan skriver du JUnit-testtilfælde med eksempler
- JUnit Tutorial for begyndere - Hvad er JUnit-test
- Python DateTime-tutorial med eksempler
- Java String indeholder () Metodevejledning med eksempler
- C # Brug af erklæring og C # Vejledning til virtuel metode med eksempler
- Introduktion til JUnit Framework og dens anvendelse i Selenium Script - Selen Tutorial # 11
- Selen Find Element By Text Tutorial med eksempler
- Java Array Length Tutorial med kodeeksempler