xUnit er det fælles navn for en familie af enhedstestrammeværker , hvis struktur og funktionalitet er baseret på SUnit , som var beregnet til Smalltalk - programmeringssproget . SUnit , udviklet af Kent Beck i 1998, blev skrevet i en meget struktureret, objektorienteret stil, vandt udbredt popularitet og er blevet tilpasset til adskillige andre sprog. Navnene på rammerne i denne familie er dannet på samme måde som "SUnit", som normalt erstatter "S" med det første bogstav (eller flere først) i navnet på det tilsigtede sprog (" JUnit " for Java , " NUnit " for .NET softwareplatform osv.). En familie af sådanne rammer med en fælles arkitektur er almindeligvis kendt som "xUnit".
Alle frameworks fra xUnit-familien har følgende grundlæggende arkitekturkomponenter, som kan variere lidt i forskellige implementeringer [1] .
Et modul er et eksekverbart program, der udfører test implementeret med rammen og viser information om deres fremskridt [2] .
Testcases (testscenarier/-tilfælde) er de grundlæggende elementer i enhedstests.
En testkonfiguration (også kaldet en kontekst) er et sæt foruddefinerede betingelser eller objekttilstande, der kræves for at køre en test. Udvikleren skal indstille en kendt-god konfiguration, før hver test udføres, og derefter vende tilbage til den originale konfiguration, efter at testen er fuldført.
En testpakke er et sæt test, der deler en fælles konfiguration. Den rækkefølge, som testene køres i, bør ikke betyde noget.
Hver test udføres i henhold til følgende skema:
opsætning (); /* Test 'kontekst' forberedes først */ ... /* Testtekst - testscript er angivet her */ ... nedrivning (); /* Efter bestået testen (uanset dens resultat), er testkonteksten "ryddet" */Modulet, der udfører testen, skal udlæse resultaterne i et eller flere specificerede formater. Ud over normal menneskelig læsbar tekst udlæses resultaterne ofte i XML-format .
En påstand i en test er en funktion eller makro, der tester adfærden eller tilstanden af den enhed, der testes. Ofte er en påstand en test for at se, om en eller anden modulparameter er lig med eller ikke lig med det forventede resultat. Manglende beståelse af testen resulterer i fejl i hele testscriptet og (om nødvendigt) en undtagelse , der stopper scriptet uden at gå videre til næste sætning.
Rammer med en xUnit-specifik arkitektur findes for mange programmeringssprog og udviklingsplatforme. Eksempler:
Andre eksempler: