junit tutorial beginners what is junit testing
Acest tutorial JUnit pentru începători explică ce este testarea unitară, acoperirea testelor și ce este cadrul de testare JUnit împreună cu exemple de teste JUnit:
Această serie JUnit a fost pregătită să se concentreze asupra publicului nostru care este începător absolut, precum și pe cei care au o bună cunoaștere a Java sau JUnit cu un interes deosebit în învățarea JUnit.
Seria în totalitate a fost prezentată în așa fel încât să puteți interpreta diferența dintre JUnit 4 și Junit 5.
Să începem să explorăm JUnit acum !!
Ce veți învăța:
ce este testarea funcționalității cu exemplu
Lista tutorialelor din această serie JUnit
Tutorial nr. 1: JUnit Tutorial pentru începători - Ce este testarea JUnit? (Acest tutorial)
Tutorial nr. 2: Descărcați, instalați și configurați JUnit în Eclipse
Tutorial # 3: Teste JUnit: Cum se scriu cazuri de testare JUnit cu exemple
Tutorial # 4: Ce este un dispozitiv de testare JUnit: Tutorial cu exemple JUnit 4
Tutorial # 5: Mai multe moduri de a executa teste JUnit
Tutorial nr. 6: Lista adnotărilor JUnit: JUnit 4 Vs JUnit 5
Tutorial nr. 7: JUnit Ignore Test Case: JUnit 4 @Ignore Vs JUnit 5 @Disabled
Tutorial # 8: JUnit Test Suite și filtrarea cazurilor de testare: JUnit 4 Vs JUnit 5
Tutorial # 9: Ordinul de executare a testului JUnit: Ordinea testelor JUnit 4 Vs JUnit 5
Tutorial # 10: Cum se utilizează JUnit 5 Annotation @RepeatedTest cu exemple
Tutorial # 11: JUnit 5 Clasa imbricată: @ Tutorial imbricat cu exemple
Tutorial # 12: JUnit 5 Numele afișat personalizat și executarea testului condiționat
Tutorial # 13: JUnit Vs TestNG - Care sunt diferențele
JUnit Tutorial
Într-o abordare tipică de dezvoltare bazată pe test (TDD), dezvoltatorii se concentrează asupra testării unitare a fiecărei bucăți din codul pe care îl dezvoltă. Cu cât testarea unui produs este mai bună, cu atât este mai bună calitatea acestuia. Știm cu toții că testarea ar trebui să meargă în paralel cu fiecare fază a ciclului de viață al dezvoltării software-ului.
Începând de la cerință și analiză până la proiectare și dezvoltare până la întreținere, fiecare fază ar trebui să aibă o fază de testare corespunzătoare asociată cu aceasta. Testarea unității după dezvoltare este ceea ce este recomandabil pentru a construi o aplicație robustă și pentru a avea un cod optimizat.
Ce este testarea de unitate?
Testarea unitară este testarea unei mici logici sau a unui cod pentru a verifica dacă ieșirea codului este așa cum era de așteptat la introducerea unor date specifice și / sau la îndeplinirea anumitor condiții. De obicei, testele unitare ar trebui să fie independente de celelalte teste.
Testele unitare nu sunt fezabile pentru a testa interfețe complexe cu o altă aplicație sau servicii terțe / externe. Un test de unitate vizează doar o mică unitate de cod care ar putea fi doar o metodă sau o clasă.
Ajută dezvoltatorul să descopere probleme din logica curentă și orice eșecuri de regresie datorate schimbării actuale. În plus, oferă și informații despre modul în care codul actual ar putea avea impact asupra implementării viitoare.
Acoperirea testului
Se numește procentul de cod care este testat prin teste unitare acoperirea testului .
Obiectivul este de a avea o acoperire mai bună și mai bună a codului, care în viitor continuă să se adauge la suita de testare de regresie și ajută la creșterea execuției și verificării automate a testelor, reducând astfel efortul manual implicat în testarea de regresie.
Rularea testelor ajută automat la identificarea problemelor de regresie ale software-ului introduse prin modificări ale codului curent. Având o acoperire ridicată a codului dvs., vă permite să continuați să dezvoltați caracteristici fără a fi nevoie să efectuați o mulțime de teste manuale.
gateway-ul implicit nu este disponibil fix Windows 10
Mulți vin cu o întrebare cât de mult acoperirea testului este esențială . Răspunsul la această întrebare este că nu există o regulă dură și rapidă pentru cât de mult este esențială acoperirea testelor; totul este judecător. Judecata devine mai bună odată cu experiența cu privire la fluxul de lucru al aplicației și cunoașterea istorică a defectelor constatate până acum.
Testele eficiente nu trebuie să însemne neapărat acoperirea 100% a testelor sau încorporarea testelor de automatizare și / sau a testelor unitare pentru fiecare ramură sau parcurs.
Anumite verificări banale, cum ar fi un mesaj de eroare de validare pentru un câmp obligatoriu lăsat necompletat, care nu are defecte de ani de zile, nu trebuie incluse în suita de regresie.
Testare manuală vs. testare automată
Testarea unitară se poate face prin două abordări:
- Testarea manuală
- Testare automată
În ambele abordări, fluxul de lucru rămâne comun:
- Crearea unui caz de testare
- Revizuind-o
- Reelaborați dacă sunt necesare corecții
- Executați cazul de testare
- Analizează rezultatele testului
Testarea automată este preferată testării manuale din următoarele motive:
Testare manuală | Testare automată |
---|---|
Când o cutie de testare este executată manual fără intervenția unui instrument, se numește testare manuală. | Când o cutie de testare este executată cu ajutorul unui instrument fără intervenție manuală prea mare, se numește testare automată. |
Sunt incluse eforturile manuale repetitive. | Eforturile manuale repetitive pot fi evitate. |
Eforturile umane în testarea manuală ar putea fi eronate și consumatoare de timp. | Testele de automatizare sunt mai rapide și fără erori în comparație cu eforturile manuale. |
Resursele de testare necesare sunt mai multe pentru rularea manuală a fiecărei probe, sporind astfel investiția în resurse. | Sunt necesare mai puține testere pentru a executa teste automate folosind instrumentul (instrumentele) automatizat (e) desemnat (e), prin urmare există o investiție mai mică în testarea resurselor, sporind astfel profitabilitatea. |
Testarea manuală trebuie să fie limitată la o acoperire mică a testelor, având în vedere restricțiile privind calendarul. Prin urmare, există riscul să omiteți multe scenarii de testare, ducând astfel la riscul scurgerii defectelor. | Multe scenarii de testare diferite pot fi automatizate și pot fi executate de mai multe ori chiar și în condiții de criză de timp și de resurse, ducând astfel la o acoperire mai bună a testelor și la o mai bună calitate a livrabilului. |
Unitatea de testare cadru
Este posibil să avem următoarea întrebare cu privire la cum arată un caz tipic de testare a unității de automatizare și la cadrul pe care îl urmează. Dezvoltatorii folosesc Unitatea de testare cadru pentru crearea de cazuri automate de testare a unității.
- Pentru a verifica dacă codul funcționează logic așa cum era de așteptat, este creată o probă cu un punct de control specific sau un criteriu de verificare.
- Atunci când testul este executat, fie criteriul / condiția trece, fie eșuează.
- Se generează un jurnal conform fluxului de lucru testcase.
- Cadrul va raporta un rezultat rezumat asupra cazurilor de testare trecute și a celor eșuate.
- În funcție de gravitatea eșecului, eșantionul de testare nu poate continua și poate opri executarea ulterioară.
- S-ar putea să apară anumite eșecuri grave mici care să fie raportate în jurnal, totuși nu arată o oprire dificilă, dar continuă fără a bloca etapele de testare ulterioare.
Ce este JUnit?
JUnit este un cadru open-source care este utilizat pentru scrierea și executarea testelor unitare în limbajul de programare Java. Este unul dintre cele mai cunoscute cadre de testare unitară.
Imaginea de mai jos prezintă diferitele instrumente de testare a unităților de automatizare bine cunoscute.
Mai jos sunt enumerate atributele cu care este împachetat JUnit:
- Există o listă imensă de adnotări pentru a identifica, executa și sprijini multe caracteristici pentru metodele de testare.
- Există afirmații pentru verificarea rezultatelor așteptate.
- Oferă Test Runner pentru executarea testelor.
- JUnit oferă un șablon de bază încorporat, astfel încât să puteți scrie cazuri de testare mici și simple în cel mai scurt timp.
- Testele JUnit vă ajută să scrieți module independente, îmbunătățind astfel acoperirea testului și calitatea aplicației.
- Nu numai că permite crearea și executarea cu ușurință a testelor, dar prezintă dezvoltatorului un raport clar și clar, care elimină necesitatea ca dezvoltatorul să caute prin calea rapoartelor și a rezultatelor testelor.
- Până când execuția testului se desfășoară fără probleme, vă puteți relaxa vizionând bara de progres verde a testului care se afișează în timp ce execuția este în desfășurare, în timp ce vă avertizează cu „roșu” imediat ce testul eșuează la un punct de verificare.
- Suitele de testare pot fi create pentru a pune împreună o secvență sau un set conex de cazuri de testare.
Exemple de teste JUnit
Mai jos sunt prezentate cele două exemple ale unui program Hello World foarte de bază pentru a înțelege cum arată o clasă de test JUnit sau cât de diferit arată în comparație cu un fișier obișnuit de clasă Java.
Exemplul nr. 1:
Iată o testă JUnit HelloWorldJUnit.java care verifică dacă șirul „Hello world” se potrivește cu șirul „hello world” care eșuează la executare, deoarece potrivirea este diferențiată de majuscule și minuscule. Prin urmare, cele două corzi nu se potrivesc și testul eșuează .
Codul pentru 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'); } }
Exemplul nr. 2:
Aici, vom vedea cât de obișnuit Java fișierul clasei interacționează cu JUnit probă. Creăm un Java fișierul clasei HelloWorld_Java.java cu un constructor care ne permite să trecem o valoare Șir și o metodă getText () pentru a prelua valoarea șirului.
JUnit Clasa de testare HelloWorldJUnit.java este creat astfel încât obiectul clasei pentru HelloWorld_Java este creat și valoarea șirului real este transmisă obiectului. AssertEquals () din JUnit verifică dacă valorile șirului așteptat și real se potrivesc.
Codul pentru 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'); } }
Codul pentru 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'); } }
Rezultatul arată ca mai jos, unde vedem că cele două șiruri se potrivesc. Prin urmare, testul JUnit este a trecut.
prims și algoritmul kruskal cu exemplu
Concluzie
Când vine vorba de a vă oferi o prezentare rapidă a ceea ce este JUnit și ce face, JUnit este un cadru frumos creat, care vă permite să creați și să executați teste unitare într-un mod automat.
Este un instrument open-source, dar atât de ușor. Fie că este vorba de crearea de cazuri de testare sau de executarea unei probe de testare sau de raportare după executarea sau menținerea testelor, JUnit este elegant în toate aspectele. Da, poate eșua și elegant; și vom vedea cum se întâmplă acest lucru în viitorul nostru tutorial pe măsură ce mergem mai departe.
Despre autor: Acest tutorial a fost scris deShobhaD. Lucrează ca șef de proiect și vine cu peste 9 ani de experiență în testarea manuală, automatizare și API.
Să continuăm să iluminăm mai adânc fiecare aspect al JUNIT de aici.
Lectură recomandată
- Tutorial de reflecție Java cu exemple
- Șirul Java conține () Tutorial metodă cu exemple
- Matrice Jagged în Java - Tutorial cu exemple
- Tutoriale detaliate pentru eclipsă pentru începători
- Tutorial Java SWING: Container, componente și gestionarea evenimentelor
- Operator ternar în Java - Tutorial cu exemple
- 20+ Tutorial MongoDB pentru începători: curs gratuit MongoDB
- Tutorial Spock: Testare cu Spock și Groovy