junit tutorial beginners what is junit testing
Denne JUnit-veiledningen for nybegynnere forklarer hva som er enhetstesting, testdekning og hva som er JUnit Testing Framework sammen med eksempler på JUnit-testkasser:
Denne JUnit-serien er forberedt på å fokusere på publikum som er absolutte nybegynnere, så vel som de som har god kunnskap om Java eller JUnit med stor interesse for å lære JUnit.
Serien i helhet er fremstilt på en slik måte at du vil kunne tolke forskjellen mellom JUnit 4 og Junit 5.
La oss begynne å utforske JUnit nå !!
Hva du vil lære:
konverter karakter til streng c ++
Liste over opplæringsprogrammer i denne JUnit-serien
Opplæring # 1: JUnit Tutorial for nybegynnere - Hva er JUnit-testing? (Denne veiledningen)
Opplæring # 2: Last ned, installer og konfigurer JUnit i formørkelse
Opplæring # 3: JUnit-tester: Hvordan skrive JUnit-testtilfeller med eksempler
Opplæring # 4: Hva er en JUnit-testarmatur: Veiledning med JUnit 4-eksempler
Opplæring # 5: Flere måter å utføre JUnit-tester på
Opplæring # 6: Liste over JUnit-merknader: JUnit 4 Vs JUnit 5
Opplæring # 7: JUnit Ignore Test Case: JUnit 4 @Ignore Vs JUnit 5 @Disabled
Opplæring # 8: JUnit Test Suite & Filtering Test Cases: JUnit 4 Vs JUnit 5
Opplæring # 9: JUnit Test Utførelsesordre: Bestilling av tester JUnit 4 Vs JUnit 5
Opplæring # 10: Slik bruker du JUnit 5-kommentar @RepeatedTest med eksempler
Opplæring # 11: JUnit 5 nestet klasse: @ nestet veiledning med eksempler
Opplæring # 12: JUnit 5 Custom Display Name & Conditional Test Execution
Opplæring # 13: JUnit Vs TestNG - Hva er forskjellene
JUnit Tutorial
I en typisk, testdrevet utviklingsmetode (TDD) fokuserer utviklere på enhetstesting av hver del av koden de utvikler. Jo bedre testing av et produkt, jo bedre er kvaliteten på det. Vi vet alle at testing bør gå parallelt med hver fase som går i programvarens utviklingslivssyklus.
Fra krav og analyse til design og utvikling til vedlikehold, bør hver fase ha en passende testfase knyttet til seg. Enhetstesting etter utvikling er det som anbefales å bygge en robust applikasjon og å ha en optimalisert kode på plass.
Hva er enhetstesting?
Enhetstesting er testing av en liten logikk eller en kode for å verifisere at utgangen av koden er som forventet ved inngangen til bestemte data og / eller for å oppfylle visse betingelser. Enhetstestene skal vanligvis være uavhengige av de andre testene.
Enhetstester er ikke mulig for å teste komplekse grensesnitt med en annen applikasjon eller tredjeparts / eksterne tjenester. En enhetstest retter seg bare mot en liten enhet med kode som bare kan være en metode eller en klasse.
Det hjelper utvikleren med å oppdage problemer i den nåværende logikken og eventuelle regresjonsfeil på grunn av den nåværende endringen. Dessuten gir den også innsikt i hvordan den nåværende koden kan påvirke fremtidig implementering.
Test dekning
Prosentandelen av kode som testes av enhetstester kalles testdekning .
Målet er å få bedre og mer testdekning av koden som i fremtiden fortsetter å legge til regresjonstestpakken og bidrar til å øke automatisert testutførelse og verifisering, og dermed redusere den manuelle innsatsen som er involvert i regresjonstesting.
Å kjøre tester hjelper automatisk med å identifisere programvareregresjonsproblemer introdusert av endringer i gjeldende kode. Å ha en høy testdekning av koden din lar deg fortsette å utvikle funksjoner uten å måtte utføre mange manuelle tester.
beste ssd kloning programvare windows 10
Mange kommer med et spørsmål om hvor mye testdekning er viktig . Svaret på dette spørsmålet er at det ikke er noen hard og rask regel for hvor mye dekning av tester er viktig; alt er fordømmende. Dommen blir bedre med erfaring med applikasjonsarbeidsflyten og historisk kunnskap om manglene som er funnet hittil.
Effektive tester trenger ikke nødvendigvis å bety at du har 100% testdekning eller inkorporerer automatiseringstester og / eller enhetstester for hver enkelt gren- eller banedekning.
Enkelte trivielle bekreftelser, som en valideringsfeilmelding for et obligatorisk felt som er tomt, og som ikke har vært feil siden år, trenger ikke å bli inkludert i regresjonspakken.
Manuell testing mot automatisert testing
Enhetstesting kan gjøres via to tilnærminger:
- Manuell testing
- Automatisert testing
I begge tilnærminger forblir arbeidsflyten vanlig:
- Lage en test case
- Gjennomgang av det
- Gjenta om nødvendig korreksjoner
- Utfør testsaken
- Analyser testresultatene
Automatisert testing foretrekkes fremfor manuell testing av følgende årsaker:
Manuell testing | Automatisert testing |
---|---|
Når en testkasse kjøres manuelt uten et inngrep fra et verktøy, kalles manuell testing. | Når en testcase kjøres ved hjelp av et verktøy uten mye manuell inngrep, kalles det automatisert testing. |
Gjentatte manuelle anstrengelser er inkludert. | Gjentatte manuelle anstrengelser kan unngås. |
Menneskelig innsats i manuell testing kan være feil og tidkrevende. | Automatiseringstester er raskere og feilfrie sammenlignet med manuell innsats. |
Testressurser som kreves er mer for å kjøre hver testcase manuelt og dermed legge til investeringen i ressursene. | Det trengs færre testere for å utføre automatiserte tester ved hjelp av det eller de angitte automatiserte verktøyene, og det er derfor mindre investering i å teste ressurser og dermed øke lønnsomheten. |
Manuell testing må begrenses til en liten testdekning med tanke på tidslinjebegrensningene. Derfor er det en risiko for å hoppe over mange testscenarier og dermed føre til risiko for feillekkasje også. | Mange forskjellige testscenarier kan automatiseres og kan utføres flere ganger, selv under tids- og ressurskrise, og fører til bedre testdekning og bedre kvalitet på den leverte. |
Enhetstestramme
Vi kan ha neste spørsmål om hvordan en typisk automatiseringsenhetstest ser ut og rammene det følger. Utviklerne bruker Enhetstest ramme for å lage automatiserte enhetstestsaker.
- For å verifisere om koden logisk fungerer som forventet, opprettes en testcase med et spesifikt kontrollpunkt eller verifiseringskriterium.
- Når testkofferten kjøres, går enten kriteriene / tilstanden eller mislykkes.
- En logg genereres i henhold til arbeidsflyt for testcase.
- Rammeverket vil rapportere et oppsummert resultat om beståtte testsaker og mislykkede.
- Avhengig av alvorlighetsgraden av feilen, kan det hende at testkofferten ikke fortsetter videre og kan stoppe etterfølgende kjøring.
- Det kan være visse lave alvorlige feil som blir rapportert i loggen, men det viser ikke et hardt stopp, men fortsetter uten å blokkere de ytterligere testtrinnene.
Hva er JUnit?
JUnit er et open source-rammeverk som brukes til å skrive og utføre enhetstester på Java-programmeringsspråk. Det er en av de mest kjente rammene for testing av enheter.
Bildet nedenfor viser de forskjellige kjente testverktøyene for automatiseringsenheter.
Nedenfor er attributtene som JUnit er pakket med:
- Det er en enorm liste over merknader for å identifisere, utføre og støtte mange funksjoner for testmetodene.
- Det er påstander om å verifisere forventede resultater.
- Det gir Test Runner for å utføre testene.
- JUnit gir en grunnleggende innebygd mal, slik at du kan skrive små, enkle testtilfeller på kort tid.
- JUnit-tester hjelper deg med å skrive uavhengige moduler, og forbedrer dermed testens dekning og kvaliteten på applikasjonen.
- Det tillater ikke bare enkel opprettelse og utføring av tester, men gir også utvikleren en ren og tydelig eksplisitt rapport som eliminerer behovet for utvikleren å søke gjennom banen til rapportene og testresultatene.
- Inntil testutførelsen seiler jevnt, kan du slappe av med å se på den grønnfargede testfremdriftslinjen som vises mens utførelsen pågår, mens den varsler deg i 'rødt' så snart testen mislykkes i et verifiseringskontrollpunkt.
- Testpakker kan opprettes for å sette en sekvens eller et beslektet sett med testtilfeller sammen.
Eksempler på JUnit Testcase
Nedenfor er de to eksemplene på et veldig grunnleggende Hello World-program for å få en forståelse av hvordan en JUnit-testklasse ser ut eller hvor annerledes den ser ut sammenlignet med en vanlig Java-klassefil.
Eksempel 1:
Her er en JUnit testcase HelloWorldJUnit.java som bekrefter at strengen 'Hello world' samsvarer med strengen 'hallo world' som mislykkes ved utførelse, da kampen er skiftende mellom store og små bokstaver. Derfor samsvarer ikke de to strengene og testen mislykkes .
Koden for 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 vanlig Java klassefilen samhandler med en JUnit testforsøk. Vi lager en Java klassefilen HelloWorld_Java.java med en konstruktør som lar oss sende en strengverdi og en metode getText () for å hente strengverdien.
JUnit Test klasse HelloWorldJUnit.java er opprettet slik at klasseobjektet for HelloWorld_Java opprettes og den faktiske strengverdien overføres til objektet. AssertEquals () fra JUnit verifiserer om de forventede og faktiske strengverdiene samsvarer.
Koden for 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 for 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 nedenfor der vi ser de to strengene matche. Derfor er JUnit-testen bestått.
app som lar deg spionere på andre telefoner
Konklusjon
Når det gjelder å gi deg en rask oversikt over hva JUnit er og hva det gjør, JUnit er et vakkert utformet rammeverk som lar deg lage og utføre enhetstester på en automatisert måte.
Det er et open source-verktøy, men likevel så problemfritt. Det være seg å opprette testsaker eller utføre en testcase eller rapportere etter gjennomføring eller vedlikeholde testene, JUnit er elegant i alle aspekter. Ja, det kan også svikte elegant; og vi vil se hvordan det skjer i vår kommende veiledning når vi går videre.
Om forfatteren: Denne opplæringen er skrevet avShobhaD. Hun jobber som prosjektleder og har 9+ års erfaring innen manuell, automatisering og API-testing.
La oss fortsette å belyse dypere på alle aspekter av JUNIT her på.
Anbefalt lesing
- Java Reflection Tutorial med eksempler
- Java String inneholder () Metodeopplæring med eksempler
- Jagged Array In Java - Opplæring med eksempler
- In-Depth Eclipse Tutorials For Beginners
- Java SWING Tutorial: Container, Components and Event Handling
- Ternary Operator In Java - Opplæring med eksempler
- 20+ MongoDB-opplæring for nybegynnere: Gratis MongoDB-kurs
- Spock Tutorial: Testing With Spock And Groovy