Sobes.tech
Intern

Cos'è un test unitario?

sobes.tech AI

Risposta dell'AI

Il test unitario è un metodo di testing del software in cui parti minime del codice (unità, solitamente funzioni, metodi o classi) vengono isolate e verificate per conformarsi al comportamento atteso.

Obiettivi dei test unitari:

  • Verifica della logica: Controllare la correttezza di una specifica sezione di codice in isolamento.
  • Rilevamento precoce di difetti: Individuare errori nella fase di sviluppo, quando la loro correzione è più economica.
  • Facilitare il refactoring: Garantire che le modifiche al codice non rompano le funzionalità esistenti.
  • Documentazione: I test unitari possono servire come esempio di utilizzo del codice.
  • Miglioramento del design del codice: Scrivere codice testabile spesso porta a un design più modulare e comprensibile.

Caratteristiche principali dei test unitari:

  • Automazione: Vengono eseguiti automaticamente dai framework di testing.
  • Isolamento: Test di un'unità, minimizzando le dipendenze da sistemi esterni (database, rete, filesystem), spesso usando mock o stub.
  • Velocità di esecuzione: Devono essere molto veloci, per poter essere eseguiti frequentemente (ad esempio, ad ogni modifica del codice o prima di un commit).
  • Determinismo: Il risultato del test deve essere lo stesso ad ogni esecuzione, se il codice testato non è cambiato.

Esempio in Python con pytest:

def add(a, b):
    """Somma due numeri."""
    return a + b

def test_add_positive_numbers():
    # Verifica somma di due numeri positivi
    assert add(2, 3) == 5

def test_add_negative_numbers():
    # Verifica somma di due numeri negativi
    assert add(-1, -5) == -6

def test_add_zero():
    # Verifica somma con zero
    assert add(0, 7) == 7