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

Scrivere Test con Unittest

Scorri per mostrare il menu

Quando si desidera assicurarsi che il proprio codice funzioni come previsto, la scrittura di test automatici è fondamentale. Il modulo unittest di Python è un framework integrato che consente di creare e organizzare facilmente i test. I casi di test vengono scritti creando classi che ereditano da unittest.TestCase. All'interno di queste classi, si definiscono metodi i cui nomi iniziano con test_. Ogni metodo verifica un aspetto specifico del codice.

Una suite di test è una raccolta di casi di test che possono essere eseguiti insieme. Per impostazione predefinita, unittest individua ed esegue tutti i metodi test_ nelle classi TestCase. Per verificare che il codice produca i risultati attesi, si utilizzano metodi di asserzione come assertEqual, assertTrue, assertFalse e assertRaises. Questi metodi confrontano i risultati effettivi con quelli attesi e segnalano eventuali errori se non corrispondono.

Per eseguire i test, è possibile utilizzare la riga di comando oppure chiamare unittest.main() alla fine del file di test.

Note
Nota

assertRaises segue uno schema distinto rispetto ad altri metodi di asserzione come assertEqual o assertTrue. Invece di verificare un valore finale, funziona come context manager utilizzando l'istruzione with per creare una zona protetta. Questo consente al test di monitorare il codice durante l'esecuzione e "intercettare" l'errore previsto.

1234567891011121314151617181920212223
import unittest def add(a, b): return a + b def divide(a, b): return a / b class TestMathFunctions(unittest.TestCase): def test_add_positive_numbers(self): self.assertEqual(add(2, 3), 5) def test_add_negative_numbers(self): self.assertEqual(add(-2, -3), -5) def test_divide_normal(self): self.assertAlmostEqual(divide(10, 2), 5.0) def test_divide_by_zero(self): with self.assertRaises(ZeroDivisionError): divide(10, 0) unittest.main(argv=['first-arg-is-ignored'], exit=False)
Note
Nota

La funzione unittest.main() in questo capitolo include alcuni parametri aggiuntivi richiesti solo per questo ambiente di apprendimento. Questi aiutano il codice a funzionare correttamente sulla piattaforma e non fanno parte dei concetti fondamentali di Python che devi apprendere ora.

question mark

Quale metodo di asserzione di unittest dovresti utilizzare per verificare che una chiamata di funzione generi un'eccezione prevista?

Seleziona la risposta corretta

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 5. Capitolo 2

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 2
some-alt