Nuovo nella versione 2.1.
L'ambiente per il test delle unità di codice di Python, spesso indicato come ``PyUnit'', è una derivazione di Junit per il linguaggio Python, ideata da Kent Beck ed Eric Gamma. A sua volta, JUnit è una versione di Java dell'ambiente di Kent Smalltalk. Ognuna rappresenta di fatto lo standard per il test delle unità di codice per il relativo linguaggio.
PyUnit supporta l'automazione dei test, la condivisione del setup e dello shutdown del codice per i test, l'aggregazione dei test in raccolte e l'indipendenza dei test dall'ambiente relativo. Il modulo unittest fornisce classi che rendono facile il supporto di queste caratteristiche per un insieme di test.
Per ottenere ciò, PyUnit supporta alcuni concetti importanti:
I concetti di test case e fixture vengono supportati tramite le classi TestCase e FunctionTestCase; la prima dovrebbe essere usata quando si creano nuovi test mentre la seconda può essere utilizzata quando si integra codice di test esistente con un ambiente guidato da PyUnit. Quando si creano fixture di test usando TestCase, i metodi setUp() e tearDown() possono essere ridefiniti al fine di fornire l'inizializzazione e la terminazione della fixture. Con la classe FunctionTestCase, possono essere passate al costruttore, per questi scopi, delle funzioni esistenti. Quando si avvia il test, l'inizializzazione della fixture del test viene eseguita per prima; in caso di successo, il metodo di pulitura viene avviato dopo l'esecuzione del test, senza riguardo al suo esito. Ogni istanza di TestCase verrà usata solo per avviare un singolo metodo del test, perciò una nuova fixture verrà creata per ogni singolo test.
Le test suite vengono implementate dalla classe TestSuite. Tale classe consente l'aggregazione di test individuali e test suite; quando la suite viene eseguita, tutti i test vengono aggiunti direttamente alla suite ed le sue suite ``figlie'' vengono eseguite.
Un test runner è un oggetto che fornisce un singolo metodo, run(), il quale accetta come parametro un oggetto TestCase o TestSuite, e restituisce un oggetto per il risultato. La classe TestResult è stata adibita a questo scopo PyUnit fornisce la classe TextTestRunner come test runner di esempio il quale segnala in modo predefinito i risultati del test sullo standard error. Runner alternativi possono essere implementati per altri ambienti (come quelli grafici) senza alcun bisogno di derivarli da una classe specifica.
Vedete anche: