what is junit test fixture
Denna handledning kommer att förklara när, varför och hur man använder JUnit Test Fixture med enkla JUnit Test Fixture-exempel för din enkla förståelse av konceptet:
Vi kommer att lära oss -
- När och varför behöver vi använda Test Fixture?
- Vad är metoden för att använda den i vår kod för JUnit-testet?
- Ett par exempel för att förstå termen 'Test Fixture' kaskades parallellt med ett försprång på JUnit 4-livscykelanmärkningar som @Before, @After, @BeforeClass, @AfterClass och @Test.
=> Kontrollera ALLA JUnit-handledning här.
Vad du kommer att lära dig:
JUnit Test Fixture
När det finns flera testfall i en JUnit-klass kan det finnas ett gemensamt objekt eller objekt som används av alla testfall. I det här fallet kan det finnas specifika funktioner som kan vara vanliga i alla testfall.
Detta betyder inte att testobjekten måste delas av alla testfall. Ändringen av objektet som gjordes i ett test behöver inte delas över alla tester eftersom dessa tester är oberoende och kan utföras i en annan ordning enligt deras prioritetsuppsättning.
helpdesk support intervju frågor och svar
Helhetsförståelsen för term 'Test Fixture' är ett fast tillstånd i en kod eller en uppsättning fasta steg i en kod som används som en förutsättning och få andra uppsättningar av steg som används som efterbetingelse för alla tester.
Således, med andra ord, identifierar vi de uppsättningar av uttalanden som kommer att upprepas för alla tester och därmed försöka ställa in en fast miljö för våra testmetoder att köra.
De ändamål Att använda Test Fixture är att eliminera duplicering av den gemensamma koden för alla testfallen.
gratis säkerhetskopieringsprogramvara för Windows 8.1
Låt oss försöka förstå den praktiska implementeringen av testarmaturen i ett JUnit-test.
setUp () -metoden
- Det finns tester som kräver initialisering av vissa objekt (sträng, heltal eller ArrayList eller något objekt för den delen). Du kan skapa en metod public void setUp () där du kan deklarera instansvariablerna för de vanliga objekten. Placera denna setUp () -metod under anteckningen @Innan . Med @Before-anteckningen kör ramverket metoden setUp () före varje testfallskörning.
- Metoden setUp () kan också användas om du vill starta en webbläsare med en specifik URL som det första steget du kör ett testfall som följer inloggning till applikationen med fördefinierade referenser.
tearDown () -metod
- Om du har tilldelat externa resurser i ett test bör du komma ihåg att frigöra resurserna också. Nedbrytningsmetoden () kan läggas till för att rensa föremålen efter att testfallet har genomförts. Lägg till en metod på ett liknande sätt som metoden setUp () offentlig ogiltig nedbrytning () under @Efter anteckning. JUnit-ramverket ser till att metoden under @After säkert körs efter varje testfall. Objekten som används i testet måste ställas in NULL i rivningsmetoden () så att soporna från testerna samlas in.
- En annan bra kandidat för sanering av objekten dödar en webbläsare i aktion efter att testfallet är avslutat och frigör minnet genom att förstöra de använda objekten.
- Metodnamnen setUp () och tearDown () är bara ett användardefinierat namn. Du kan ange vilket metodnamn du vill. Det är bara anteckningarna som används med metoden som bestämmer sekvensen för testkörningen.
JUnit Test Fixture Exempel
I det här avsnittet kommer vi att gå igenom två exempel på JUnit 4-testet och försöka förstå hur man använder metoden för Test Fixtures i vår kod tillsammans med sekvensen av olika livscykelnoteringar @Before, @After, @BeforeClass, @AfterClass, och @Test.
Naturligtvis kommer det att finnas en separat handledning om anteckningar som klargör vad dessa är och hur var och en av anteckningarna fungerar. Låt oss nu hålla oss till förståelsen för test Fixture-användningen i koden.
JUnit 4 Test - Exempel 1
I det här exemplet kommer vi att ha testarmaturerna i klassen med tre testfall. Metoden setUp () med @Before-annotering och tearDown () -metoden med @After-anteckningen.
Koda:
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 resulterande konsolfönstret kommer att visas som visas nedan:
Konsolfönstret gör det uppenbart att metoden setUp () körs före varje testkörning och efter varje testkörning körs tearDown () -metoden.
Således är sekvensen för exekvering per kommentar för varje testmetod:
- @Innan
- @Testa
- @Efter
Kom ihåg att testerna här har körts i sekventiell ordning, dvs test_JUnit1 (), test_JUnit2 (), test_JUnit3 (), det finns ingen sekvens definierad för testet, därför kan de utföras i valfri ordning. Varje test isoleras från det andra testet.
JUnit 4 Test - Exempel 2
Här ska vi snabbt se hur vi kan ha en metod som körs en gång för första gången i en klass och en annan metod som körs en gång efter att alla tester har utförts för klassen.
Koda:
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 till preClass () -metoden under @BeforeClass-anteckningen. Den här metoden körs bara en gång för en klass innan testet körs. Det körs även innan metoden under @Before körs.
PostClass () -metoden under @AfterClass-anteckningen körs en gång i slutet när alla tester inklusive testet under @After körs och slutförs.
Provkörningens sekvens är som följer:
- @Innan lektionen
- @Innan
- @Testa
- @Efter
- @Efter lektionen
Metoderna under @BeforeClass och @AfterClass delas vanligen av klassen, varför om metoderna inte deklareras som statisk då ger det en initialiseringsfel vid genomförande av testet.
reguljära uttryck i c ++
Se skärmdumpen nedan, där vi inte har ställt in preClass () -metoden under @BeforeClass-anteckningen som statisk och därmed har testet misslyckats vid körning.
Du kan se att resultatet visar initialiseringsfel som kan elimineras när du markerar metoden som statisk. Detsamma gäller metoden postClass () under @AfterClass-kommentaren.
Slutsats
Vi har försökt att skapa ett sammanhang för de goda programmeringsmetoder som ska följas genom att implementera Testa fixturen tillvägagångssätt och en grundläggande förståelse för användning och sekvens av exekvering för livscykelanteckningar.
I vår nästa handledning lär vi oss om olika sätt att utföra JUnit-tester i Eclipse. Så håll ögonen öppna för serien när vi går vidare med mer intressanta aspekter av JUnit.
=> Kolla här för att se A-Z av JUnit-utbildningar här.
Rekommenderad läsning
- JUnit-tester: Hur man skriver JUnit-testfall med exempel
- JUnit-handledning för nybörjare - Vad testas JUnit
- Python DateTime-handledning med exempel
- Java String innehåller () Metodhandledning med exempel
- C # Använda uttalande och C # Virtuell metodhandledning med exempel
- Introduktion till JUnit Framework and Its Use in Selenium Script - Selenium Tutorial # 11
- Selen Find Element by Text Tutorial med exempel
- Java Array Length Tutorial With Code Exempel