junit tutorial beginners what is junit testing
Denne JUnit-vejledning til begyndere forklarer, hvad der er enhedstest, testdækning og hvad der er JUnit-testramme sammen med eksempler på JUnit-testcases:
Denne JUnit-serie er forberedt til at fokusere på vores publikum, der er absolutte begyndere såvel som dem, der har et godt kendskab til Java eller JUnit med en stor interesse i at lære JUnit.
Serien i helhed er blevet fremlagt på en sådan måde, at du vil være i stand til at fortolke forskellen mellem JUnit 4 og Junit 5.
Lad os begynde at udforske JUnit nu !!
Hvad du lærer:
klon harddisk til ssd-software
Liste over vejledninger i denne JUnit-serie
Tutorial # 1: JUnit-vejledning til begyndere - Hvad er JUnit-test? (Denne vejledning)
Tutorial # 2: Download, installer og konfigurer JUnit i formørkelse
Tutorial # 3: JUnit-test: Sådan skriver du JUnit-testtilfælde med eksempler
Tutorial # 4: Hvad er en JUnit-testarmatur: Vejledning med JUnit 4-eksempler
Tutorial # 5: Flere måder at udføre JUnit-test på
Tutorial # 6: Liste over JUnit-kommentarer: JUnit 4 Vs JUnit 5
Tutorial # 7: JUnit Ignore Test Case: JUnit 4 @Ignore Vs JUnit 5 @Disabled
Tutorial # 8: JUnit Test Suite & Filtering Test Cases: JUnit 4 Vs JUnit 5
Tutorial # 9: JUnit-testudførelsesordre: rækkefølge af tests JUnit 4 mod JUnit 5
Tutorial # 10: Sådan bruges JUnit 5-kommentar @RepeatedTest med eksempler
Tutorial # 11: JUnit 5 nestet klasse: @ nestet tutorial med eksempler
Tutorial # 12: JUnit 5 Custom Display Name & Conditional Test Execution
Vejledning nr. 13: JUnit Vs TestNG - Hvad er forskellene
JUnit Tutorial
I en typisk, testdrevet udviklingsmetode (TDD) fokuserer udviklere på enhedstestning af hvert stykke af den kode, de udvikler. Jo bedre test af et produkt, jo bedre er kvaliteten af det. Vi ved alle, at test skal gå parallelt med hver fase, der går i softwareudviklingens livscyklus.
Startende fra krav og analyse til design og udvikling indtil vedligeholdelse, hver fase skal have en passende testfase, der er knyttet til det. Enhedstest efter udvikling er, hvad der er tilrådeligt at opbygge en robust applikation og have en optimeret kode på plads.
Hvad er enhedstestning?
Enhedstestning er test af en lille logik eller en kode for at verificere, at output af koden er som forventet ved input af bestemte data og / eller for at opfylde visse betingelser. Normalt formodes enhedstestene at være uafhængige af de andre test.
Enhedstest er ikke mulig for at teste komplekse grænseflader med en anden applikation eller tredjeparts / eksterne tjenester. En enhedstest målretter kun mod en lille enhed kode, der kun kan være en metode eller en klasse.
Det hjælper udvikleren med at finde problemer i den aktuelle logik og eventuelle regressionssvigt på grund af den aktuelle ændring. Desuden giver den også indsigt i, hvordan den nuværende kode kan påvirke fremtidig implementering.
Test dækning
Procentdelen af kode, der testes ved enhedstest, kaldes test dækning .
Målet er at få bedre og mere testdækning af koden, som fremover fortsætter med at tilføje til regressionstestpakken og hjælper med at øge automatiseret testudførelse og verificering og derved reducere den manuelle indsats involveret i regressionstest.
At køre tests hjælper automatisk med at identificere software-regressionsproblemer, der er introduceret ved ændringer i den aktuelle kode. At have en høj testdækning af din kode giver dig mulighed for at fortsætte med at udvikle funktioner uden at skulle udføre mange manuelle tests.
Mange kommer med et spørgsmål om hvor meget testdækning er afgørende . Svaret på dette spørgsmål er, at der ikke er nogen hård og hurtig regel for, hvor meget dækning af tests er afgørende; det er alt sammen fordømmende. Dommen bliver bedre med erfaring med applikationsarbejdsprocessen og historisk viden om de mangler, der hidtil er fundet.
Effektive test behøver ikke nødvendigvis at betyde, at man har 100% testdækning eller inkorporerer automatiseringstest og / eller enhedstest til hver enkelt gren eller stigdækning.
Visse trivielle verifikationer som en valideringsfejlmeddelelse for et obligatorisk felt, der er tomt, og som ikke har været fejlbehæftet siden år, behøver ikke at blive inkluderet i regressionspakken.
Manuel test mod automatiseret test
Enhedstest kan udføres via to tilgange:
- Manuel test
- Automatiseret test
I begge tilgange forbliver arbejdsgangen almindelig:
bedste gratis registry cleaner til Windows 10
- Oprettelse af en test case
- Gennemgang af det
- Omarbejde, hvis der er behov for rettelser
- Udfør testsagen
- Analyser testresultaterne
Automatiseret test foretrækkes frem for manuel test af nedenstående grunde:
Manuel test | Automatiseret test |
---|---|
Når en testcase udføres manuelt uden en indgriben fra et værktøj kaldes manuel test. | Når en testcase udføres ved hjælp af et værktøj uden meget manuel indgriben kaldes automatiseret test. |
Gentagne manuelle bestræbelser er inkluderet. | Gentagne manuelle bestræbelser kan undgås. |
Menneskelig indsats i manuel test kan være fejlagtig og tidskrævende. | Automatiseringstest er hurtigere og fejlfri sammenlignet med manuel indsats. |
De krævede testressourcer er mere til at køre hver testcase manuelt og derved tilføje investeringen i ressourcerne. | Der er behov for færre testere til at udføre automatiserede tests ved hjælp af det eller de udpegede automatiserede værktøj (er), hvorfor der er mindre investering i testressourcer, hvilket øger rentabiliteten. |
Manuel test skal begrænses til en lille testdækning i betragtning af tidslinjebegrænsningerne. Derfor er der en risiko for at springe over mange testscenarier, hvilket også fører til risiko for mangel lækage. | Mange forskellige testscenarier kan automatiseres og kan udføres flere gange selv under tids- og ressourcekrise, hvilket fører til bedre testdækning og bedre kvalitet af den leverede. |
Enhedstestramme
Vi kan have det næste spørgsmål om, hvordan ser en typisk automatiseringsenhedstestsag ud og den ramme, den følger. Udviklerne bruger Enhedstest ramme til oprettelse af automatiserede enhedstestsager.
- For at kontrollere, om koden logisk fungerer som forventet, oprettes en testcase med et specifikt kontrolpunkt eller verifikationskriterium.
- Når testkassen udføres, går enten kriteriet / betingelsen igennem eller mislykkes.
- En log genereres i henhold til testcase-workflowet.
- Rammen rapporterer et sammenfattende resultat om de beståede testsager og mislykkede.
- Pr. Sværhedsgraden af fejlen, kan testkassen muligvis ikke gå videre og kan stoppe den efterfølgende udførelse.
- Der kan være visse lave alvorlige fejl, der bliver rapporteret i loggen, men det viser ikke et hårdt stop, men fortsætter uden at blokere de yderligere testtrin.
Hvad er JUnit?
JUnit er en open source-ramme, der bruges til at skrive og udføre enhedstest på Java-programmeringssprog. Det er en af de mest kendte rammer for enhedstest.
Nedenstående billede viser de forskellige kendte testværktøjer til automatiseringsenheder.
Nedenfor vises de attributter, som JUnit er pakket med:
- Der er en enorm liste med kommentarer, der kan identificere, udføre og understøtte mange funktioner til testmetoderne.
- Der er påstande om at kontrollere de forventede resultater.
- Det giver Test Runner til udførelse af testene.
- JUnit giver en grundlæggende indbygget skabelon, så du kan skrive små, enkle testsager på ingen tid.
- JUnit-tests hjælper dig med at skrive uafhængige moduler og forbedrer dermed testens dækning og applikationens kvalitet.
- Det giver ikke kun let oprettelse og udførelse af tests, men præsenterer også udvikleren med en ren og klar eksplicit rapport, der eliminerer behovet for udvikleren til at søge gennem stien til rapporterne og testresultaterne.
- Indtil testudførelsen sejler glat igennem, kan du slappe af med at se på den grønfarvede testforløbslinje, der vises, mens udførelsen er i gang, mens den advarer dig i 'rød', så snart testen mislykkes med et kontrolkontrolpunkt.
- Testpakker kan oprettes for at samle en sekvens eller et beslægtet sæt testsager.
Eksempler på JUnit testcase
Nedenfor er de to eksempler på et meget grundlæggende Hello World-program for at få en forståelse af, hvordan en JUnit-testklasse ser ud, eller hvor anderledes den ser ud, sammenlignet med en almindelig Java-klassefil.
gratis SQL-software til Windows 10
Eksempel 1:
Her er en JUnit testcase HelloWorldJUnit.java, der verificerer, at strengen 'Hello world' matcher strengen 'hej world', som mislykkes ved udførelse, da kampen er skift mellem store og små bogstaver. Derfor matcher de to strenge ikke, og testen mislykkes .
Koden til 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'); } }
Eksempel 2:
Her vil vi se, hvordan en sædvanlig Java klassefil interagerer med en JUnit test sag. Vi opretter en Java klassefil HelloWorld_Java.java med en konstruktør, der giver os mulighed for at videregive en strengværdi og en metode getText () til at hente strengværdien.
JUnit Test klasse HelloWorldJUnit.java oprettes således, at klasseobjektet til HelloWorld_Java oprettes, og den aktuelle strengværdi overføres til objektet. AssertEquals () fra JUnit verificerer, om de forventede og faktiske strengværdier stemmer overens.
Koden til 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 til 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'); } }
Den resulterende ser ud som nedenfor, hvor vi ser de to strenge matche. Derfor er JUnit-testen bestået.
Konklusion
Når det kommer til at give dig et hurtigt overblik over, hvad JUnit er, og hvad det gør, JUnit er en smukt udformet ramme, der giver dig mulighed for at oprette og udføre enhedstest på en automatisk måde.
Det er et open source-værktøj, men alligevel så problemfrit. Det være sig oprettelsen af testsager eller udførelse af en testcase eller rapportering efter udførelse eller vedligeholdelse af testene, JUnit er elegant i alle aspekter. Ja, det kan også fejle elegant; og vi vil se, hvordan det sker i vores kommende tutorial, når vi går videre.
Om forfatteren: Denne tutorial er skrevet afShobhaD. Hun arbejder som projektleder og har 9+ års erfaring inden for manuel, automatisering og API-test.
Lad os fortsætte med at belyse dybere i alle aspekter af JUNIT her-på.
Anbefalet læsning
- Java Reflection Tutorial med eksempler
- Java String indeholder () Metodevejledning med eksempler
- Jagged Array In Java - Vejledning med eksempler
- Dybdegående formørkelsesvejledninger til begyndere
- Java SWING Tutorial: Container, komponenter og håndtering af begivenheder
- Ternær operatør i Java - Vejledning med eksempler
- 20+ MongoDB-vejledning til begyndere: Gratis MongoDB-kursus
- Spock Tutorial: Test med Spock og Groovy