JUnit e JUnit 5: Metodi Fondamentali
16 Questions
9 Views

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

    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

    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!

    More Like This

    Use Quizgecko on...
    Browser
    Browser