Riassunto Metodi JUnit PDF
Document Details
![EnviablePhiladelphia3618](https://quizgecko.com/images/avatars/avatar-8.webp)
Uploaded by EnviablePhiladelphia3618
Uniba
Tags
Related
- Ley 5/2023, de 7 de junio, de la Función Pública de Andalucía. PDF
- Ley 5/2023, de 7 de Junio, de la Función Pública de Andalucía PDF
- Ley 5/2021, de 29 de Junio, Organización y Régimen Jurídico del Sector Público Autonómico de Aragón PDF
- Ley 5/2021, de 29 de Junio, Organización y Régimen Jurídico del Sector Público Autonómico de Aragón PDF
- CSC 210 Practice Exercises PDF
- Cours Junit PDF
Summary
Questo documento fornisce un riepilogo dei metodi e delle annotazioni fondamentali di JUnit e JUnit 5, come @Test, @BeforeEach, @AfterEach, ecc. Vengono descritti i vari tipi di asserzioni e come funzionano. Un riepilogo di come poter creare una struttura di testing in Java.
Full Transcript
JUnit e JUnit 5: Metodi e Annotazioni Fondamentali @Test: Questa annotazione identifica un metodo come un test case. Il metodo annotato con @Test verifica un singolo comportamento del sistema e deve contenere almeno un'asserzione [1-3]. I nomi dei metodi di test dovrebbero essere...
JUnit e JUnit 5: Metodi e Annotazioni Fondamentali @Test: Questa annotazione identifica un metodo come un test case. Il metodo annotato con @Test verifica un singolo comportamento del sistema e deve contenere almeno un'asserzione [1-3]. I nomi dei metodi di test dovrebbero essere significativi e fornire un'idea chiara dello scopo del test. Assertion: Un'asserzione è un metodo che verifica un singolo risultato atteso all'interno di un test. JUnit fornisce vari metodi di asserzione : fail(): Causa il fallimento del test. assertTrue(boolean a): Causa il fallimento del test se a è falso. assertFalse(boolean a): Causa il fallimento del test se a è vero. assertNull(Object a): Causa il fallimento del test se a non è null. assertNotNull(Object a): Causa il fallimento del test se a è null. assertEquals(expected, actual): Causa il fallimento del test se expected non è uguale a actual. assertArrayEquals(expectedArray, actualArray): Causa il fallimento del test se gli array non sono uguali. assertEquals(expected, actual, delta): Utilizzata per confrontare numeri reali (float o double) con una tolleranza delta. In JUnit 5, l'asserzione assertEquals accetta un parametro opzionale di tipo String per descrivere la ragione del fallimento: assertEquals(Object expected, Object actual, String message). @BeforeEach: Questa annotazione indica un metodo che deve essere eseguito prima di ogni metodo di test nella classe. È utile per inizializzare variabili, istanziare oggetti o eseguire operazioni comuni a tutti i test. L'uso di @BeforeEach aiuta a evitare problemi di dipendenza tra i test. @BeforeAll: Questa annotazione indica un metodo che deve essere eseguito una sola volta prima dell'esecuzione del primo test nella classe. Il metodo deve essere statico. È utile per configurazioni complesse, come l'inizializzazione di una connessione a un database o altre risorse condivise tra i test. @AfterEach: Questa annotazione indica un metodo che deve essere eseguito dopo ogni metodo di test nella classe. È utile per ripulire l'ambiente dopo l'esecuzione di un test. @AfterAll: Questa annotazione indica un metodo che deve essere eseguito una sola volta dopo l'esecuzione dell'ultimo test nella classe. Il metodo deve essere statico. È utile per liberare risorse, chiudere connessioni, o eseguire altre operazioni di pulizia al termine di tutti i test. @Disabled: Questa annotazione permette di disabilitare un test o una classe di test durante l'esecuzione. È utile quando un test non è ancora implementato o non deve essere eseguito [10, 11]. Si può anche aggiungere una stringa come argomento per fornire una spiegazione del motivo per cui il test è disabilitato: @Disabled("Not implemented yet"). @DisplayName: Questa annotazione permette di dare un nome visualizzato più descrittivo al test. Facilita la lettura dei risultati dei test. @ParameterizedTest: Questa annotazione indica che un metodo di test è un test parametrizzato, cioè che verrà eseguito più volte con diversi set di argomenti. È necessario specificare almeno una fonte che fornisca gli argomenti per ogni invocazione del test. @ValueSource: Questa annotazione, utilizzata con @ParameterizedTest, fornisce una serie di valori letterali come argomenti per il test. Supporta diversi tipi di valori come short, byte, int, long, float, double, char, boolean, String e Class [13, 14]. Il test viene eseguito una volta per ogni valore definito in @ValueSource. @NullSource: Utilizzata con @ParameterizedTest, questa annotazione fornisce un singolo argomento null al metodo di test parametrizzato. @EmptySource: Utilizzata con @ParameterizedTest, questa annotazione fornisce un singolo argomento vuoto al metodo di test per tipi di dati come String, List, Set, Map, array primitivi e array di oggetti [15, 16]. @NullAndEmptySource: Utilizzata con @ParameterizedTest, questa annotazione combina la funzionalità di @NullSource e @EmptySource, fornendo sia un argomento null che uno vuoto [17-19]. @MethodSource: Questa annotazione, usata con @ParameterizedTest, permette di fare riferimento a uno o più metodi factory che generano uno stream di argomenti per il test. Ogni set di argomenti nello stream sarà utilizzato per invocare il test. Il metodo factory può restituire uno Stream, DoubleStream, LongStream, IntStream, Collection, Iterator, Iterable, un array di oggetti, o un array di primitivi. Se il test ha più parametri, il metodo deve restituire una Collection, uno Stream o un array di Arguments. @CsvFileSource: Utilizzata con @ParameterizedTest, permette di fornire gli argomenti al test da un file CSV (comma-separated values) presente nel classpath o nel file system locale. Ogni riga del file CSV risulta in una invocazione del test. Si può usare l'attributo numLinesToSkip per ignorare le righe di header. @TestMethodOrder: Utilizzata a livello di classe o interfaccia, permette di specificare l'ordine di esecuzione dei metodi di test. Mockito: Framework per Mock e Stub mock(): Crea un mock o uno stub per una data classe [24, 25]. when(.).thenReturn(): Specifica come dovrebbe comportarsi un metodo di un mock o stub. In questo caso, restituisce value quando il metodo viene invocato. verify().: Verifica che le interazioni con l'oggetto mock siano avvenute come previsto. Permette di verificare quante volte un metodo è stato chiamato e con quali argomenti. Si può usare any() per verificare che un metodo è stato chiamato con qualsiasi valore.