JUnit e JUnit 5: Metodi Fondamentali

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

Quale annotazione permette di disabilitare un test o una classe di test?

  • @ValueSource
  • @Disabled (correct)
  • @DisplayName
  • @ParameterizedTest

Quale annotazione viene utilizzata per fornire un singolo argomento null a un metodo di test parametrizzato?

  • @MethodSource
  • @NullSource (correct)
  • @EmptySource
  • @ValueSource

Cosa permette di fare l'annotazione @DisplayName?

  • Disabilitare un test
  • Generare argomenti per i test
  • Dare un nome descrittivo al test (correct)
  • Clonare un metodo di test

Quale delle seguenti annotazioni è utilizzata per fornire valori letterali come argomenti per un test parametrizzato?

<p>@ValueSource (C)</p> Signup and view all the answers

L'annotazione @NullAndEmptySource è una combinazione di quali altre annotazioni?

<p>@NullSource e @EmptySource (C)</p> Signup and view all the answers

Quale annotazione deve essere specificata con almeno una fonte di argomenti per un test parametrizzato?

<p>@ParameterizedTest (B)</p> Signup and view all the answers

Cosa fa l'annotazione @EmptySource quando utilizzata con un test parametrizzato?

<p>Fornisce un argomento che è una stringa vuota (B)</p> Signup and view all the answers

Quale tra le seguenti affermazioni è vera riguardo all'annotazione @MethodSource?

<p>Permette di riferirsi a metodi factory che generano argomenti (A)</p> Signup and view all the answers

Qual è lo scopo principale dell'annotazione @Test in JUnit?

<p>Indicare che il metodo verifica un singolo comportamento del sistema (B)</p> Signup and view all the answers

Quale asserzione causa il fallimento se l'oggetto passato come parametro non è nullo?

<p>assertNull(Object a) (B)</p> Signup and view all the answers

Quale annotazione viene utilizzata per eseguire un metodo una sola volta prima di tutti i test nella classe?

<p>@BeforeAll (C)</p> Signup and view all the answers

Qual è la funzione di @AfterEach in JUnit?

<p>Pulire l'ambiente dopo l'esecuzione di un test (D)</p> Signup and view all the answers

Quale delle seguenti affermazioni riguardanti le asserzioni è falsa?

<p>assertNotNull provoca il fallimento se l'oggetto è nullo (C)</p> Signup and view all the answers

Quale asserzione in JUnit è specifica per il confronto di numeri reali con tolleranza?

<p>assertEquals(expected, actual, delta) (C)</p> Signup and view all the answers

Cosa succede se un metodo annotato con @Test non contiene asserzioni?

<p>Il test viene considerato fallito (A)</p> Signup and view all the answers

Quale delle seguenti annotazioni deve essere statica?

<p>@BeforeAll (D)</p> Signup and view all the answers

Flashcards

Cosa indica @Test?

L'annotazione @Test identifica un metodo come un test case. Il metodo annotato verifica un singolo comportamento del sistema e deve contenere almeno un'asserzione.

Cos'è un'asserzione?

Un'asserzione è un metodo che verifica un risultato atteso all'interno di un test.

Come si usa assertEquals?

Il metodo assertEquals(expected, actual) verifica se il valore previsto (expected) è uguale al valore reale (actual).

Cosa fa @BeforeEach?

L'annotazione @BeforeEach indica un metodo che viene eseguito prima di ogni test case. È utile per inizializzare variabili o istanziare oggetti.

Signup and view all the flashcards

Cosa fa @BeforeAll?

L'annotazione @BeforeAll indica un metodo che viene eseguito una sola volta prima di eseguire qualsiasi test case. Il metodo deve essere statico.

Signup and view all the flashcards

Cosa fa @AfterEach?

L'annotazione @AfterEach indica un metodo che viene eseguito dopo ogni test case. È utile per ripulire l'ambiente dopo un test.

Signup and view all the flashcards

Cosa fa @AfterAll?

L'annotazione @AfterAll indica un metodo che viene eseguito una sola volta dopo aver terminato l'esecuzione di tutti i test case. Il metodo deve essere statico.

Signup and view all the flashcards

Cosa fa fail()?

Il metodo fail() fa fallire il test. Viene utilizzato quando si vuole forzare un fallimento per verificare un comportamento specifico.

Signup and view all the flashcards

Cosa fa l'annotazione @Disabled?

L'annotazione @Disabled disabilita un test o una classe di test, utile quando il test non è ancora completo o non deve essere eseguito. Può anche essere usata per fornire una spiegazione del motivo della disabilitazione.

Signup and view all the flashcards

Cosa fa l'annotazione @DisplayName?

L'annotazione @DisplayName consente di assegnare un nome più descrittivo al test, semplificando la lettura dei risultati dei test.

Signup and view all the flashcards

Cosa sono i test parametrizzati?

Un test parametrizzato (@ParameterizedTest) viene eseguito più volte con diversi set di argomenti. Richiede una fonte di dati per fornire gli argomenti per ogni esecuzione del test.

Signup and view all the flashcards

Cosa fa l'annotazione @ValueSource?

L'annotazione @ValueSource fornisce un insieme di valori letterali come argomenti per un test parametrizzato. Supporta vari tipi di dati, tra cui stringhe, numeri e booleani.

Signup and view all the flashcards

Cosa fa l'annotazione @NullSource?

L'annotazione @NullSource, usata con test parametrizzati, fornisce un singolo argomento null al metodo di test.

Signup and view all the flashcards

Cosa fa l'annotazione @EmptySource?

L'annotazione @EmptySource, usata con i test parametrizzati, fornisce un singolo argomento vuoto al test. Questo vale per tipi di dati come stringhe, liste, set, mappe e array.

Signup and view all the flashcards

Cosa fa l'annotazione @NullAndEmptySource?

L'annotazione @NullAndEmptySource combina le funzionalità di @NullSource e @EmptySource, fornendo sia un argomento null che uno vuoto.

Signup and view all the flashcards

Cosa fa l'annotazione @MethodSource?

L'annotazione @MethodSource, usata con test parametrizzati, fa riferimento a uno o più metodi factory che generano uno stream di argomenti per il test. Ogni set di argomenti viene utilizzato per eseguire il test.

Signup and view all the flashcards

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 se a è falso.
    • assertFalse(boolean a): Fallisce se a è vero.
    • assertNull(Object a): Fallisce se a non è null.
    • assertNotNull(Object a): Fallisce se a è null.
    • assertEquals(expected, actual): Fallisce se expected non è uguale a actual.
    • assertArrayEquals(expectedArray, actualArray): Fallisce se gli array non sono uguali.
    • assertEquals(expected, actual, delta): Confronta numeri reali con tolleranza delta. 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 metodo factory 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. Restituisce value 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.

Quiz Team

Related Documents

Riassunto Metodi JUnit PDF

More Like This

jUnit Test Quiz
3 questions

jUnit Test Quiz

GratifiedDalmatianJasper avatar
GratifiedDalmatianJasper
Junit Testing: Purpose and Benefits
3 questions

Junit Testing: Purpose and Benefits

BetterThanExpectedIndigo avatar
BetterThanExpectedIndigo
软件质量保证与测试-题库
55 questions
Use Quizgecko on...
Browser
Browser