junit tutorial beginners what is junit testing
Denna JUnit-handledning för nybörjare förklarar vad som är Unit Testing, Test Coverage och What is JUnit Testing Framework tillsammans med exempel på JUnit Testcases:
Denna JUnit-serie har förberetts för att fokusera på vår publik som är absoluta nybörjare såväl som de som har goda kunskaper i Java eller JUnit med ett stort intresse för att lära sig JUnit.
Serien i helhet har presenterats på ett sådant sätt att du kan tolka skillnaden mellan JUnit 4 och Junit 5.
Låt oss börja utforska JUnit nu !!
Vad du kommer att lära dig:
hur man använder css-väljaren i selen
Lista över handledning i denna JUnit-serie
Handledning nr 1: JUnit-handledning för nybörjare - Vad testar JUnit? (Denna handledning)
Handledning nr 2: Ladda ner, installera och konfigurera JUnit i Eclipse
Handledning nr 3: JUnit-tester: Hur man skriver JUnit-testfall med exempel
Handledning nr 4: Vad är en JUnit Test Fixture: Handledning med JUnit 4-exempel
Handledning nr 5: Flera sätt att utföra JUnit-tester
Självstudie nr 6: Lista över JUnit-kommentarer: JUnit 4 Vs JUnit 5
Självstudie 7: JUnit Ignorera testfall: JUnit 4 @Ignore Vs JUnit 5 @Disabled
Handledning # 8: JUnit Test Suite & Filtering Test Cases: JUnit 4 Vs JUnit 5
Handledning nr 9: JUnit Test Utförande Order: Test Order JUnit 4 Vs JUnit 5
Handledning nr 10: Hur man använder JUnit 5 Annotation @RepeatedTest med exempel
Handledning nr 11: JUnit 5 nestad klass: @ nestad handledning med exempel
Handledning nr 12: JUnit 5 Anpassat visningsnamn och villkorlig testutförande
Handledning nr 13: JUnit Vs TestNG - Vad är skillnaderna?
JUnit Tutorial
I en typisk testdriven utvecklingsstrategi (TDD) fokuserar utvecklare på att testa varje bit av koden de utvecklar. Ju bättre testning av en produkt, desto bättre är kvaliteten på den. Vi vet alla att testning bör gå parallellt med varje fas i programvarans livscykel.
Från krav och analys till design och utveckling till underhåll bör varje fas ha en lämplig testfas associerad med sig. Enhetstestning efter utveckling är vad som är lämpligt för att bygga en robust applikation och ha en optimerad kod på plats.
Vad är enhetstestning?
Enhetstestning är testning av en liten logik eller en kod för att verifiera att utmatningen av koden är som förväntat vid inmatningen av en specifik data och / eller för att uppfylla vissa villkor. Vanligtvis ska enhetstesterna vara oberoende av de andra testerna.
Enhetstester är inte möjliga för att testa komplexa gränssnitt med en annan applikation eller tredje part / externa tjänster. Ett enhetstest riktar sig endast mot en liten enhet kod som bara kan vara en metod eller en klass.
Det hjälper utvecklaren att upptäcka problem i den aktuella logiken och eventuella regressionsfel på grund av den aktuella förändringen. Dessutom ger den också insikt i hur den nuvarande koden kan påverka framtida implementering.
Test täckning
Procentandelen kod som testas av enhetstester kallas testtäckning .
Målet är att få bättre och mer testtäckning av koden som i framtiden fortsätter att komplettera regressionstestpaketet och hjälper till att öka automatiserad testkörning och verifiering, vilket minskar den manuella ansträngningen i regressionstestning.
Att köra tester hjälper automatiskt till att identifiera programregressionsproblem som introduceras av ändringar i den aktuella koden. Att ha en hög testtäckning av din kod gör att du kan fortsätta utveckla funktioner utan att behöva utföra många manuella tester.
Många har en fråga om hur mycket testtäckning är viktigt . Svaret på denna fråga är att det inte finns någon hård och snabb regel för hur mycket täckning av tester som är nödvändig; allt är dömande. Bedömningen blir bättre med erfarenhet av applikationsarbetsflödet och historisk kunskap om de fel som hittills hittats.
Effektiva tester behöver inte nödvändigtvis innebära att ha 100% testtäckning eller inkludera automatiseringstest och / eller enhetstest för varje enskild gren- eller bantäckning.
Vissa triviala verifieringar som ett valideringsfelmeddelande för ett obligatoriskt fält som lämnas tomt som inte har brister sedan flera år behöver inte inkluderas i regressionssviten.
bästa gratis brandväggen för Windows 10
Manuell testning mot automatisk testning
Enhetstestning kan göras på två sätt:
- Manuell testning
- Automatiserad testning
I båda tillvägagångssätten förblir arbetsflödet vanligt:
- Skapa ett testfall
- Granska det
- Omarbeta om korrigeringar behövs
- Utför testfallet
- Analysera testresultaten
Automatiserad testning är att föredra framför manuell testning av följande skäl:
Manuell testning | Automatiserad testning |
---|---|
När en testväska körs manuellt utan ett ingripande från ett verktyg kallas manuell testning. | När en testväska körs med hjälp av ett verktyg utan mycket manuell intervention kallas automatiserad testning. |
Upprepade manuella insatser ingår. | Upprepade manuella ansträngningar kan undvikas. |
Mänskliga ansträngningar för manuell testning kan vara felaktiga och tidskrävande. | Automationstester är snabbare och felfria jämfört med manuella ansträngningar. |
Testade resurser som krävs är mer för att köra varje testcase manuellt och därmed lägga till investeringen i resurserna. | Mindre testare behövs för att utföra automatiserade tester med hjälp av det eller de automatiska verktygen som anges, så det finns mindre investeringar i testresurser vilket ökar lönsamheten. |
Manuell testning måste begränsas till en liten testtäckning med tanke på tidslinjebegränsningarna. Därför finns det en risk att hoppa över många testscenarier, vilket leder till risk för defektläckage också. | Många olika testscenarier kan automatiseras och kan köras flera gånger även under tids- och resurskris, vilket leder till bättre testtäckning och bättre kvalitet på leveransen. |
Enhetstestramverk
Vi kan ha nästa fråga om hur ett typiskt testfall för automatiseringsenheter ser ut och vilket ramverk det följer. Utvecklarna använder Enhetstestram för att skapa automatiserade enhetstestfall.
- För att verifiera om koden fungerar logiskt som förväntat skapas en testkassa med en specifik kontrollpunkt eller verifieringskriterium.
- När testkassan körs går antingen kriterierna / villkoren igen eller misslyckas.
- En logg genereras enligt testflödets arbetsflöde.
- Ramverket kommer att rapportera ett sammanfattat resultat om godkända testfall och misslyckade.
- Per svårighetsgraden kan det hända att testkassan inte går vidare och kan stoppa efterföljande körning.
- Det kan finnas vissa låga allvarliga fel som rapporteras i loggen, men det visar inte ett svårt stopp men fortsätter utan att blockera de ytterligare teststegen.
Vad är JUnit?
JUnit är en öppen källkodsram som används för att skriva och utföra enhetstester på Java-programmeringsspråk. Det är en av de mest kända ramarna för enhetstestning.
Bilden nedan visar de olika välkända testverktygen för automatiseringsenheter.
Nedan listas attributen som JUnit är förpackad med:
- Det finns en enorm lista med kommentarer för att identifiera, utföra och stödja många funktioner för testmetoderna.
- Det finns påståenden för att verifiera de förväntade resultaten.
- Det ger Test Runner för att utföra testerna.
- JUnit tillhandahåller en grundläggande inbyggd mall så att du kan skriva små, enkla testfall på nolltid.
- JUnit-tester hjälper dig att skriva oberoende moduler, vilket förbättrar testets täckning och applikationens kvalitet.
- Det gör det inte bara möjligt att skapa och exekvera tester utan ger också utvecklaren en ren och tydlig uttrycklig rapport som eliminerar behovet av utvecklaren att söka igenom sökvägen till rapporterna och testresultaten.
- Tills testkörningen seglar smidigt kan du slappna av att titta på den grönfärgade testförloppsfältet som visas medan körningen pågår medan den varnar dig i rött så snart testet misslyckas med en verifieringskontrollpunkt.
- Testsviter kan skapas för att sätta ihop en sekvens eller relaterad uppsättning testfall.
Exempel på JUnit Testcase
Nedan följer de två exemplen på ett mycket enkelt Hello World-program för att förstå hur en JUnit-testklass ser ut eller hur annorlunda den ser ut jämfört med en vanlig Java-klassfil.
Exempel 1:
Här är en JUnit-testcase HelloWorldJUnit.java som verifierar att strängen 'Hello world' matchar strängen 'hej world' som misslyckas vid körning, eftersom matchningen är skiftlägeskänslig. Därför matchar de två strängarna inte och testet misslyckas .
Koden för HelloWorldJUnit.java
package demo.tests; import static org.junit.Assert.*; import org.junit.Test; public class HelloWorldJUnit { @Test public void test() { assertEquals('Hello world','hello world'); } }
Exempel 2:
Här kommer vi att se hur en vanlig Java klassfil interagerar med en JUnit testfall. Vi skapar en Java klassfil HelloWorld_Java.java med en konstruktör som låter oss skicka ett strängvärde och en metod getText () för att hämta strängvärdet.
JUnit Testklass HelloWorldJUnit.java skapas så att klassobjektet för HelloWorld_Java skapas och det verkliga strängvärdet skickas till objektet. AssertEquals () från JUnit verifierar om de förväntade och faktiska strängvärdena matchar.
Koden för HelloWorld_Java.java
package demo.tests; import static org.junit.Assert.*; import org.junit.Test; public class HelloWorldJUnit { @Test public void test() { assertEquals('Hello world','hello world'); } }
Koden för HelloWorldJUnit.java
package demo.tests; public class HelloWorldJUnit{ private String s; public HelloWorld_Java(String s) { @Test public void test() { HelloWorld_Java hw=new HelloWorld_Java('Hello World'); assertEquals(hw.getText(),'Hello World'); } }
Resultatet ser ut som nedan där vi ser de två strängarna matcha. Därför är JUnit-testet passerade.
Slutsats
När det gäller att ge dig en snabb översikt över vad JUnit är och vad det gör, JUnit är ett vackert utformat ramverk som gör att du kan skapa och utföra enhetstester på ett automatiserat sätt.
Det är ett verktyg med öppen källkod men ändå så problemfritt. Vare sig det är skapandet av testfall eller utförande av en testcase eller rapportering efter genomförande eller underhåll av testerna, JUnit är elegant i alla aspekter. Ja, det kan också misslyckas elegant; och vi kommer att se hur det händer i vår kommande handledning när vi går vidare.
hur man skickar en felrapport
Om författaren: Denna handledning har skrivits avShobhaD. Hon arbetar som projektledare och har 9+ års erfarenhet av manuell, automatisering och API-testning.
Låt oss fortsätta att belysa djupare på alla aspekter av JUNIT här.
Rekommenderad läsning
- Java Reflection Tutorial med exempel
- Java String innehåller () Metodhandledning med exempel
- Jagged Array In Java - Handledning med exempel
- Fördjupade förklaringar om förmörkelser för nybörjare
- Java SWING-handledning: Container, komponenter och händelsehantering
- Ternary Operator In Java - Handledning med exempel
- 20+ MongoDB-handledning för nybörjare: Gratis MongoDB-kurs
- Spock-handledning: Testning med Spock och Groovy