Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Introduzione ai Test in Python | Testing with unittest and pytest
Programmazione Strutturale in Python

Introduzione ai Test in Python

Scorri per mostrare il menu

Il testing è una pratica fondamentale nello sviluppo software, che garantisce che il codice si comporti come previsto e rimanga affidabile nel tempo. Il testing automatico consente di verificare il codice in modo automatico, evitando controlli manuali che richiedono tempo e sono soggetti a errori. Scrivendo test, è possibile rilevare rapidamente quando le modifiche compromettono funzionalità esistenti e modificare o estendere il codice con maggiore sicurezza.

Uno degli approcci più diffusi al testing è lo sviluppo guidato dai test (TDD). Nel TDD, si inizia scrivendo un test che descrive un comportamento o una funzionalità desiderata prima di implementare il codice. Questo processo incoraggia a riflettere attentamente sui requisiti e sui casi limite fin dall'inizio, portando a un codice più pulito e manutenibile. Dopo aver scritto il test, si implementa il codice minimo necessario per superarlo, quindi si effettua il refactoring del codice per migliorarne chiarezza o efficienza, eseguendo nuovamente i test per assicurarsi che tutto funzioni. Questo ciclo – scrivere un test, scrivere il codice, fare refactoring – consente di costruire software robusto in modo incrementale.

Il testing non serve solo a individuare bug. Rappresenta anche una documentazione vivente del codice, facilitando la comprensione di come dovrebbe funzionare sia per altri sviluppatori sia per sé stessi in futuro. I test automatici sono particolarmente preziosi nel lavoro di squadra o su progetti di grandi dimensioni, poiché offrono una rete di sicurezza che favorisce la sperimentazione e modifiche del codice in tutta tranquillità.

12345
# A function to add two numbers def add(a, b): return a + b print(add(2, 3))
# A basic test case for the add function using unittest
import unittest

class TestAddFunction(unittest.TestCase):
    def test_add_positive_numbers(self):
        self.assertEqual(add(2, 3), 5)

    def test_add_zero(self):
        self.assertEqual(add(0, 5), 5)

    def test_add_negative_numbers(self):
        self.assertEqual(add(-1, -1), -2)

Il codice fornito definisce una classe di test chiamata TestAddFunction utilizzando il framework unittest integrato in Python. All'interno di questa classe sono presenti tre metodi di test:

  • test_add_positive_numbers verifica che la chiamata add(2, 3) restituisca 5;
  • test_add_zero controlla che sommando zero e cinque con add(0, 5) si ottenga 5;
  • test_add_negative_numbers conferma che la somma di due numeri negativi, add(-1, -1), restituisca -2.

Ogni metodo di test utilizza self.assertEqual per confrontare il risultato effettivo della funzione add con il valore atteso. Se un test fallisce, il framework lo segnalerà, aiutando a individuare rapidamente eventuali errori.

question mark

Qual è uno dei principali vantaggi dei test automatizzati nello sviluppo Python?

Seleziona la risposta corretta

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 5. Capitolo 1

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Sezione 5. Capitolo 1
some-alt