Testcase JUnit în Java: Tutorial simplu JUnit 5.7.1 Hello World cu detalii All in One
Publicat: 2019-10-30
Ce este JUnit?
JUnit este un cadru simplu, puternic, open source pentru a scrie și a rula teste repetabile. Îmi plac testele JUnit. În timpul dezvoltării proiectului meu Java, folosesc pe scară largă JUnit pentru acoperirea codului. Este o instanță a arhitecturii xUnit pentru cadrele de testare unitară.
Caracteristicile JUnit includ:
- Afirmații pentru testarea rezultatelor așteptate
- Dispozitive de testare pentru partajarea datelor comune de testare
- Testare alergători pentru teste de rulare
În acest tutorial, voi acoperi punctele 1 și 3. Aveți nevoie de mai jos dependențe maven în proiectul dvs.
1 2 3 4 5 |
< dependency > < groupId > junit < / groupId > < artifactId > junit < / artifactId > < version > 4.12 < / version > < / dependency > |
Să începem să scriem cod.
Pasul 1
Creați proiectul CrunchifyJunitTest
și specificați pachetul com.crunchify.junit
. Iată o structură a pachetului pentru referință rapidă.

Pasul 2
Faceți clic dreapta pe CrunchifyJunitTest
=> New Class => CrunchifyJunitTest.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
package com . crunchify . junit ; /** * @author Crunchify * */ import static org . junit . Assert . assertEquals ; import org . junit . Test ; public class CrunchifyJunitTest { @ Test public void testingCrunchifyAddition ( ) { assertEquals ( "Here is test for Addition Result: " , 30 , addition ( 27 , 3 ) ) ; } @ Test public void testingHelloWorld ( ) { assertEquals ( "Here is test for Hello World String: " , "Hello + World" , helloWorld ( ) ) ; } public int addition ( int x , int y ) { return x + y ; } public String helloWorld ( ) { String helloWorld = "Hello +" + " World" ; return helloWorld ; } } |
Pasul 3
Eclipse va sugera și va adăuga automat dependența org.junit.Test
odată ce tastați @Test .

Pasul-4
Pentru a vă testa testul JUnit
- Faceți clic dreapta pe clasă
- Faceți clic pe Run As
- Faceți clic pe
JUnit Test
Ar trebui să vezi așa ceva.

Pasul-5
Încercați să schimbați parametrul pentru valoarea așteptată a metodei de la 30 => 300
și de la Hello World => Hello -- World
și testați din nou.
1 2 3 4 5 6 7 8 9 |
@ Test public void testingCrunchifyAddition ( ) { assertEquals ( "Here is test for Addition Result: " , 300 , addition ( 27 , 3 ) ) ; } @ Test public void testingHelloWorld ( ) { assertEquals ( "Here is test for Hello World String: " , "Hello -- World" , helloWorld ( ) ) ; } |

Pasul-6
Acum să rulăm același caz de testare via other java
. Creați CrunchifyRunnerJUnit.java

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
package com . crunchify . junit ; import org . junit . runner . JUnitCore ; import org . junit . runner . Result ; import org . junit . runner . notification . Failure ; /** * @author Crunchify * */ public class CrunchifyRunnerJUnit { public static void main ( String [ ] args ) { Result result = JUnitCore . runClasses ( CrunchifyJunitTest . class ) ; for ( Failure failure : result . getFailures ( ) ) { System . out . println ( failure . toString ( ) ) ; } if ( result . wasSuccessful ( ) ) { System . out . println ( "Both Tests finished successfully..." ) ; } } } |
Pasul-7
Rulați CrunchifyRunnerJUnit.java
ca Java Application
.
Pasul-8
În cazul 1st code
(parametrul corect așteptat), ar trebui să vedeți rezultatul astfel:
1 |
Both Tests finished successfully . . . |
Pasul-9
În cazul celui de-al 2nd code
(parametru așteptat incorect), ar trebui să vedeți ceva de genul acesta:
1 2 |
testingCrunchifyAddition ( com . crunchify . junit . CrunchifyJunitTest ) : Here is test for Addition Result : expected : < 300 > but was : < 30 > testingHelloWorld ( com . crunchify . junit . CrunchifyJunitTest ) : Here is test for Hello World String : expected : < Hello [ -- ] World > but was : < Hello [ + ] World > |
Și ești gata. Anunțați-mă dacă observați probleme la rularea acestui cod.
Adnotare disponibilă în cazul de testare JUnit:
Adnotare | Descriere |
---|---|
@Testați metoda public void() | Adnotarea @Test identifică faptul că o metodă este o metodă de testare. |
Metoda @Before public void() | Va executa metoda înainte de fiecare test. Această metodă poate pregăti mediul de testare (de exemplu, citiți datele de intrare, inițializați clasa). |
Metoda @After public void() | Va executa metoda după fiecare test. Această metodă poate curăța mediul de testare (de exemplu, ștergerea datelor temporare, restaurarea setărilor implicite). |
Metoda public void @BeforeClass () | Va executa metoda o dată, înainte de începerea tuturor testelor. Acesta poate fi folosit pentru a efectua activități care necesită mult timp, de exemplu pentru a vă conecta la o bază de date. |
Metoda public void @AfterClass () | Va executa metoda o dată, după ce toate testele s-au terminat. Acesta poate fi folosit pentru a efectua activități de curățare, de exemplu pentru a vă deconecta de la o bază de date. |
@Ignora | Va ignora metoda de testare. Acest lucru este util atunci când codul de bază a fost modificat și cazul de testare nu a fost încă adaptat. Sau dacă timpul de execuție a acestui test este prea lung pentru a fi inclus. |
@Test (așteptată = Exception.class) | Eșuează, dacă metoda nu aruncă excepția numită. |
@Test(timeout=100) | Eșuează dacă metoda durează mai mult de 100 de milisecunde. |
Metode de testare a afirmațiilor disponibile:
Afirmație | Descriere |
---|---|
fail(șir) | Lasă metoda să eșueze. Poate fi folosit pentru a verifica dacă o anumită parte a codului nu este atinsă. Sau pentru a avea test eșuat înainte ca codul de testare să fie implementat. |
assertTrue (adevărat) / assertTrue (fals) | Va fi întotdeauna adevărat/fals. Poate fi folosit pentru a predefini un rezultat al testului, dacă testul nu este încă implementat. |
assertTrue([mesaj], condiție booleană) | Verifică dacă condiția booleană este adevărată. |
assertsEquals([Mesaj șir], așteptat, actual) | Testează că două valori sunt aceleași. Notă: pentru matrice referința este verificată și nu conținutul matricelor. |
assertsEquals([String message], așteptat, real, toleranță) | Testați că valorile float sau double se potrivesc. Toleranța este numărul de zecimale care trebuie să fie același. |
assertNull([mesaj], obiect) | Verifică dacă obiectul este nul. |
assertNotNull([mesaj], obiect) | Verifică dacă obiectul nu este nul. |
assertSame([Șir], așteptat, actual) | Verifică dacă ambele variabile se referă la același obiect. |
assertNotSame([String], așteptat, actual) | Verifică că ambele variabile se referă la obiecte diferite. |