Podcast
Questions and Answers
Quale annotazione permette di disabilitare un test o una classe di test?
Quale annotazione permette di disabilitare un test o una classe di test?
Quale annotazione viene utilizzata per fornire un singolo argomento null a un metodo di test parametrizzato?
Quale annotazione viene utilizzata per fornire un singolo argomento null a un metodo di test parametrizzato?
Cosa permette di fare l'annotazione @DisplayName?
Cosa permette di fare l'annotazione @DisplayName?
Quale delle seguenti annotazioni è utilizzata per fornire valori letterali come argomenti per un test parametrizzato?
Quale delle seguenti annotazioni è utilizzata per fornire valori letterali come argomenti per un test parametrizzato?
Signup and view all the answers
L'annotazione @NullAndEmptySource è una combinazione di quali altre annotazioni?
L'annotazione @NullAndEmptySource è una combinazione di quali altre annotazioni?
Signup and view all the answers
Quale annotazione deve essere specificata con almeno una fonte di argomenti per un test parametrizzato?
Quale annotazione deve essere specificata con almeno una fonte di argomenti per un test parametrizzato?
Signup and view all the answers
Cosa fa l'annotazione @EmptySource quando utilizzata con un test parametrizzato?
Cosa fa l'annotazione @EmptySource quando utilizzata con un test parametrizzato?
Signup and view all the answers
Quale tra le seguenti affermazioni è vera riguardo all'annotazione @MethodSource?
Quale tra le seguenti affermazioni è vera riguardo all'annotazione @MethodSource?
Signup and view all the answers
Qual è lo scopo principale dell'annotazione @Test in JUnit?
Qual è lo scopo principale dell'annotazione @Test in JUnit?
Signup and view all the answers
Quale asserzione causa il fallimento se l'oggetto passato come parametro non è nullo?
Quale asserzione causa il fallimento se l'oggetto passato come parametro non è nullo?
Signup and view all the answers
Quale annotazione viene utilizzata per eseguire un metodo una sola volta prima di tutti i test nella classe?
Quale annotazione viene utilizzata per eseguire un metodo una sola volta prima di tutti i test nella classe?
Signup and view all the answers
Qual è la funzione di @AfterEach in JUnit?
Qual è la funzione di @AfterEach in JUnit?
Signup and view all the answers
Quale delle seguenti affermazioni riguardanti le asserzioni è falsa?
Quale delle seguenti affermazioni riguardanti le asserzioni è falsa?
Signup and view all the answers
Quale asserzione in JUnit è specifica per il confronto di numeri reali con tolleranza?
Quale asserzione in JUnit è specifica per il confronto di numeri reali con tolleranza?
Signup and view all the answers
Cosa succede se un metodo annotato con @Test non contiene asserzioni?
Cosa succede se un metodo annotato con @Test non contiene asserzioni?
Signup and view all the answers
Quale delle seguenti annotazioni deve essere statica?
Quale delle seguenti annotazioni deve essere statica?
Signup and view all the answers
Study Notes
JUnit e JUnit 5: Metodi e Annotazioni Fondamentali
-
@Test
: Indica un metodo come un test case. Il metodo deve verificare un singolo comportamento del sistema e contenere almeno un'asserzione. I nomi dei metodi devono essere significativi. -
Asserzioni: Metodi che verificano un singolo risultato atteso. JUnit fornisce diversi tipi di asserzioni:
-
fail()
: Causa il fallimento del test. -
assertTrue(boolean a)
: Fallisce sea
è falso. -
assertFalse(boolean a)
: Fallisce sea
è vero. -
assertNull(Object a)
: Fallisce sea
non è null. -
assertNotNull(Object a)
: Fallisce sea
è null. -
assertEquals(expected, actual)
: Fallisce seexpected
non è uguale aactual
. -
assertArrayEquals(expectedArray, actualArray)
: Fallisce se gli array non sono uguali. -
assertEquals(expected, actual, delta)
: Confronta numeri reali con tolleranzadelta
. Accetta un messaggio opzionale per spiegare il fallimento.
-
Annotazioni per la Gestione dei Test
-
@BeforeEach
: Metodo eseguito prima di ogni test case. Utile per l'inizializzazione di variabili, oggetti, o operazioni comuni. Evita dipendenze fra test. -
@BeforeAll
: Metodo eseguito una sola volta prima del primo test case. Dovrebbe essere statico. Utile per configurazioni complesse (es. connessione a un DB). -
@AfterEach
: Metodo eseguito dopo ogni test case. Utile per la pulizia dell'ambiente. -
@AfterAll
: Metodo eseguito una sola volta dopo l'ultimo test case. Dovrebbe essere statico. Utile per liberare risorse, chiudere connessioni. -
@Disabled
: Disabilita un test o una classe di test. Permette di non eseguire test ancora incompleti o provvisori. Può accettare una stringa per una spiegazione. -
@DisplayName
: Assegna un nome più descrittivo al test. Rende i risultati di test più leggibili. -
@ParameterizedTest
: Permette di eseguire un metodo di test più volte con diversi set di argomenti. Richiede una fonte (es. un array, una lista, o un metodo) che fornisce gli argomenti. -
@ValueSource
: Fornisce una serie di valori letterali a@ParameterizedTest
. Supporta vari tipi di valori (es. interi, stringhe). -
@NullSource
: Utilizzata con@ParameterizedTest
, fornisce un argomento null al metodo di test. -
@EmptySource
: Utilizzata con@ParameterizedTest
, fornisce un argomento vuoto per tipi diversi da stringhe o array. -
@NullAndEmptySource
: Combina@NullSource
e@EmptySource
per fornire argomenti null e vuoti. -
@MethodSource
: Permette di utilizzare un metodofactory
che genera lo stream di parametri per il test. -
@CsvFileSource
: Legge i parametri da un file CSV. -
@TestMethodOrder
: Specifica l'ordine di esecuzione dei metodi di test.
Mockito
-
mock(<class>)
: Crea un mock o uno stub per una classe. -
when(<mock>.<method>).thenReturn(<value>)
: Definisce il comportamento del metodo di un mock. Restituiscevalue
quando il metodo viene chiamato. -
verify(<mock>).<method>
: Verifica se il metodo di un mock è stato invocato come previsto. Può verificare il numero di chiamate e gli argomenti utilizzati.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Related Documents
Description
Scopri i principali metodi e annotazioni di JUnit e JUnit 5. Questo quiz esplorerà l'uso dell'annotazione @Test e le varie asserzioni che possono essere utilizzate per verificare i comportamenti del sistema. Testa le tue conoscenze su come scrivere test efficaci!