xUnit e le suite di Unit-testing

A partire dal primo documento che descriveva un sistema di Unit-testing automatizzato da fatto Kent Beck per SmallTalk( Simple Smalltalk Testing: With Patterns ) sono nati e si stanno oggi evolvendo vari framework di test, indirizzati alle più specifiche carattersitiche dei singoli linguaggi. Hanno però tutte una struttura portante sostanziamente identica, riscontrabile con maggiore o minore precisione nelle varie implementazioni e derivante da una sempre maggiore spinta all'automatizzazione anche della creazione dei test stessi.

La struttura di un sistema di Unit-testing

Un sistema di unit-testing si compone di quattro elementi:

Fixture

Una fixture è di fatto il contesto di esecuzione necessario per eseguire un certo test.

Suite

Una Suite è un insieme di test che necessitano dell a stessa Fixture

Asserzione

Una asserzione è un metodo o una macro che verificano il comportamento dell'unità durante il test. Se l'unità si comporta nel modo previsto l'asserzione ha successo e il test va a buon fine. Se l'unità non si comporta nel modo previsto, si ha un fallimento e il test non va a buon fine.

Esecuzione dei test

Per permettere ad ogni test di essere eseguito nelle stesse condizioni, questo deve essere eseguito in questo modo:

startup();

/*codice di test*/

teardown();

con i due metodi startup() e teardown() che sono definiti per portare il sistema nelle condizioni definite dalla Fixture.