JUnit è un framework di test unitari open source per Java. È importante nello sviluppo di framework test-driven. È considerato come un'istanza dell'architettura xUnit. Come suggerisce il nome, viene utilizzato per testare una piccola porzione di codice o un'unità.
Il test unitario viene utilizzato per verificare una piccola porzione di codice creando un percorso, una funzione o un metodo. Il termine "unità" esisteva anche prima dell'era orientata agli oggetti. È fondamentalmente un'astrazione naturale di un sistema orientato agli oggetti, ad esempio una classe o un oggetto Java.
JUnit promuove l'idea di "Test first, code later", che enfatizza l'impostazione dei dati di test per un pezzo di codice che può essere testato prima e poi implementato.
JUnit Annotations è una forma speciale di metadati sintattici che possono essere aggiunti al codice sorgente Java per una migliore leggibilità e struttura del codice. Si possono annotare variabili, parametri, pacchetti, metodi e classi.
1. @Test Questa annotazione è una sostituzione di org.junit.TestCase che indica che il metodo public void a cui è collegato può essere eseguito come test Case.
2. @Before Questa annotazione viene utilizzata se si desidera eseguire alcune istruzioni come le precondizioni prima di ogni test case.
3. @BeforeClass Questa annotazione viene utilizzata se si desidera eseguire alcune istruzioni prima di tutti i casi di test, ad es. la connessione di test deve essere eseguita prima di tutti i casi di test.
4. @After Questa annotazione può essere utilizzata se si desidera eseguire alcune istruzioni dopo ogni Test Case, ad esempio, reimpostare variabili, eliminare file temporanei, variabili, ecc.
5. @AfterClass Questa annotazione può essere utilizzata se si desidera eseguire alcune istruzioni dopo tutti i casi di test, ad es. Rilascio delle risorse dopo l'esecuzione di tutti i casi di test.
6. @Ignores Questa annotazione può essere utilizzata se si desidera ignorare alcune istruzioni durante l'esecuzione del test, ad es. disabilitare alcuni casi di test durante l'esecuzione del test.
7. @Test(timeout=1000) Questa annotazione può essere utilizzata se si desidera impostare un timeout durante l'esecuzione del test, ad es. se stai lavorando in base a uno SLA (Service level agreement) e i test devono essere completati entro un periodo di tempo specificato.
8. @Test(expected=IllegalArgumentException.class) Questa annotazione può essere utilizzata se si desidera gestire alcune eccezioni durante l'esecuzione del test. Ad esempio, se si desidera verificare se un particolare metodo sta generando un'eccezione specificata o meno.