Junit Assert e AssertEquals con l'esempio
โก Riepilogo intelligente
JUnit I metodi Assert e AssertEquals determinano lo stato di superamento o fallimento di un caso di test confrontando i valori attesi con quelli effettivi. Questa risorsa illustra i metodi assert forniti da org.junit.Assert, incluse le asserzioni booleane, nulle, di identitร , di uguaglianza e sugli array, con un esempio completo e funzionante.

Cos'รจ Junit Assert?
Il metodo `assert` รจ utile per determinare lo stato di superamento o fallimento di un caso di test. I metodi `assert` sono forniti dalla classe `org.junit.Assert`, che estende la classe `java.lang.Object`.
Esistono vari tipi di asserzioni, come Booleane, Null, Identitร , ecc.
JUnit Fornisce una classe denominata Assert, che offre una serie di metodi di asserzione utili per scrivere casi di test e rilevare errori durante i test.
I metodi assert sono forniti dalla classe org.junit.Assert, che estende il java.lang.Oggetto classe.
JUnit Metodi di affermazione
Booleano
Se si desidera verificare le condizioni booleane (vero o falso), รจ possibile utilizzare i seguenti metodi di asserzione:
- assertTrue (condizione)
- assertFalse (condizione)
Qui la condizione รจ un valore booleano.
Oggetto nullo
Se vuoi controllare il valore iniziale di un oggetto/variabile, hai a disposizione i seguenti metodi:
- assertNull(oggetto)
- assertNotNull(oggetto)
Qui l'oggetto รจ un Java oggetto, per esempio assertNull(effettivo);
Identico
Se vuoi verificare se gli oggetti sono identici (ovvero, confrontando due riferimenti allo stesso Java oggetto) o diverso:
- assertSame(expected, actual) โ Restituirร vero se previsto == effettivo.
- assertNotSame(previsto, effettivo)
Asserisci uguale
Se si desidera verificare l'uguaglianza di due oggetti, รจ possibile utilizzare il seguente metodo:
- assertEquals(previsto, effettivo)
Restituirร vero se previsto.uguale(effettivo) restituisce true.
Asserisci array uguale a
Se si desidera verificare l'uguaglianza degli array, รจ possibile utilizzare il seguente metodo:
- assertArrayEquals(previsto, effettivo)
Il metodo sopra descritto deve essere utilizzato se gli array hanno la stessa lunghezza. Per ogni valore valido per i, puoi verificarlo come indicato di seguito:
- assertEquals(expected[i], actual[i])
- assertArrayEquals(expected[i], actual[i])
Messaggio di errore
Se vuoi generare errori di asserzione, devi farlo fallire(), il che si traduce sempre in un verdetto negativo.
- errore(messaggio);
ร possibile avere un metodo di asserzione con un'aggiunta Corda parametro come primo parametro. Questa stringa verrร aggiunta al messaggio di errore se l'asserzione fallisce. Ad esempio, messaggio di errore puรฒ essere scritto come:
- assertEquals(messaggio, previsto, effettivo)
JUnit assertEquals
Hai assertEquals(a, b), che si basa sul equivale () metodo della classe Object.
- Qui verrร valutato come a.equals(b).
- Qui la classe in esame viene utilizzata per determinare un'adeguata relazione di uguaglianza.
- Se una classe non sovrascrive il file equivale () metodo del Oggetto classe, otterrร il comportamento predefinito della equivale () metodo, ovvero identitร dell'oggetto.
If a and b sono primitivi come byte, int, booleano, ecc., quindi per assertEquals(a, b) verrร eseguita la seguente operazione:
a and b verranno convertiti nel tipo di oggetto wrapper equivalente (Byte, Intero, Booleano, ecc.), e poi a.equals(b) sarร valutato.
Ad esempio, consideriamo le stringhe riportate di seguito che hanno gli stessi valori; verifichiamolo utilizzando assertEquals:
String obj1 = "Junit"; String obj2 = "Junit"; assertEquals(obj1, obj2);
L'istruzione assert di cui sopra restituirร true poichรฉ obj1.equals(obj2) restituisce true.
Asserzioni in virgola mobile
Quando si desidera confrontare i tipi a virgola mobile (ad esempio, doppio or galleggiante), รจ necessario un parametro aggiuntivo obbligatorio, deltaper evitare problemi con gli errori di arrotondamento durante i confronti in virgola mobile.
L'asserzione viene valutata come indicato di seguito:
- Math.abs(previsto โ effettivo) <= delta
Per esempio:
assertEquals(aDoubleValore, un altroDoubleValore, 0.001)
JUnit Esempio di affermazione
L'esempio seguente mostra come asserire una condizione utilizzando JUnit affermare metodi.
Creiamo una semplice classe di test chiamata Test di asserzione Junit4.java e una classe di test runner TestRunner.java.
Creerai alcune variabili e importanti istruzioni assert in JUnit.
In questo esempio, eseguirete la nostra classe di test utilizzando TestRunner.java.
Passo 1) Creiamo una classe che copra tutti i metodi di asserzione importanti in JUnit:
Test di asserzione Junit4.java
package guru99.junit; import static org.junit.Assert.*; import org.junit.Test; public class Junit4AssertionTest { @Test public void testAssert() { // Variable declaration String string1 = "Junit"; String string2 = "Junit"; String string3 = "test"; String string4 = "test"; String string5 = null; int variable1 = 1; int variable2 = 2; int[] airethematicArrary1 = { 1, 2, 3 }; int[] airethematicArrary2 = { 1, 2, 3 }; // Assert statements assertEquals(string1, string2); assertSame(string3, string4); assertNotSame(string1, string3); assertNotNull(string1); assertNull(string5); assertTrue(variable1 < variable2); assertArrayEquals(airethematicArrary1, airethematicArrary2); } }
Passo 2) ร necessario creare una classe di esecuzione dei test per eseguire la classe sopra menzionata:
TestRunner.java
package guru99.junit; import org.junit.runner.JUnitCore; import org.junit.runner.Result; import org.junit.runner.notification.Failure; public class TestRunner { public static void main(String[] args) { Result result = JUnitCore.runClasses(Junit4AssertionTest.class); for (Failure failure : result.getFailures()) { System.out.println(failure.toString()); } System.out.println("Result==" + result.wasSuccessful()); } }
Passo 3) Analizziamo passo passo l'output atteso. Consideriamo una per una tutte le istruzioni assert:
- assertEquals(stringa1, stringa2);
Ora confronta string1="Junit" con string2="Junit" utilizzando il metodo equals della classe Object. Sostituisci il metodo assertEquals con il metodo java.lang.Object.equals():
string1.equals(string2) => restituisce true
Quindi assertEquals(string1, string2) restituirร vero.
- assertStesso(stringa3, stringa4);
La funzionalitร โassertSame()โ serve a verificare che i due oggetti si riferiscano allo stesso oggetto. Poichรฉ string3="test" e string4="test", sia string3 che string4 sono dello stesso tipo, quindi assertSame(string3, string4) restituirร vero.
- assertNotSame(string1, string3);
La funzionalitร โassertNotSame()โ serve a verificare che i due oggetti non facciano riferimento allo stesso oggetto. Poichรฉ string1=โJunitโ e string3=โtestโ, sia string1 che string3 sono di tipi diversi, quindi assertNotSame(string1, string3) restituirร vero.
- assertNotNull(stringa1);
La funzionalitร โassertNotNull()โ serve a verificare che un oggetto non sia nullo. Poichรฉ string1="Junit", che รจ un valore non nullo, assertNotNull(string1) restituirร vero.
- assertNull(stringa5);
La funzionalitร โassertNull()โ serve a verificare che un oggetto sia nullo. Poichรฉ string5=null, che รจ un valore nullo, assertNull(string5) restituirร vero.
- assertTrue(variabile1 < variabile2);
La funzionalitร โassertTrue()โ serve a verificare che una condizione sia vera. Poichรฉ la variabile1=1 e la variabile2=2, il che dimostra che la condizione variabile1 < variabile2 รจ vera, assertTrue(variabile1 < variabile2) restituirร vero.
- assertArrayEquals(airethematicArrary1, airethematicArrary2);
La funzionalitร โassertArrayEquals()โ serve a verificare che lโarray previsto e lโarray risultante siano uguali. Il tipo di array potrebbe essere int, long, short, char, byte o java.lang.Object. Poichรฉ airethematicArrary1 = { 1, 2, 3 } e airethematicArrary2 = { 1, 2, 3 }, il che dimostra che entrambi gli array sono uguali, assertArrayEquals(airethematicArrary1, airethematicArrary2) restituirร vero.
Poichรฉ tutte e sette le affermazioni affermano del Test di asserzione Junit4.java Se la classe restituisce true, quando esegui il test assert class, verrร restituito un test riuscito (vedi l'output qui sotto).
Passo 4) Fai clic con il pulsante destro del mouse su Junit4AssertionTest.java e seleziona Esegui come -> JUnit. Vedrai l'output come indicato di seguito:
L'output sopra riportato mostra un risultato del test positivo, come previsto.

