Eenheidstests bondig eenheidstestinstrumenten

Dit is een uittreksel uit het Unit Testing Beknopte eBook, door Marc Clifton, vriendelijk geleverd door Syncfusion.

NUnit

NUnit werd oorspronkelijk geporteerd van JUnit als een open-source test-engine voor eenheden die een rijke reeks van testopstelling, methode en variabele attributen biedt, evenals testassessies. De documentatie voor alle versies van NUnit is hier te vinden. NUnit wordt nog steeds onderhouden. De nieuwste stabiele versie op het moment van schrijven is versie 2.6.2, uitgegeven op 22 oktober 2012.


CSUnit

CSUnit is een lichtere eenheidstestmotor. Merk op dat het niet lijkt te worden onderhouden, aangezien de laatste release in maart 2009 was. Het biedt een minimale maar functionele reeks attributen om te gebruiken voor het definiëren van testopstellingen en testmethoden.


Visual Studio-testproject

Visual Studio biedt de mogelijkheid om testprojecten rechtstreeks in de IDE te maken. Een van de problemen die de auteur ontdekte, is dat de gebruikersinterface is gewijzigd tussen VS 2008 en VS 2012:

Visual Studio 2008 Testresultaten UI

VS2008 Testresultaten UI

In VS2008 wordt de testrun zeer snel uitgevoerd en wordt een gemakkelijk leesbare lijst met testresultaten weergegeven en, voor mislukte tests, het foutbericht met informatie over waarom de test is mislukt.

Als het testproject het actieve project is, is het uitvoeren van de tests (of het debuggen ervan) hetzelfde als bij elke andere toepassing. U kunt ze uitvoeren met Ctrl + F5 (uitvoeren) of F5 (foutopsporing).

Visual Studio 2012 Testresultaten UI

VS2012 Testresultaten UI

In VS2012 duurt het enkele seconden voordat de testrunner is geïnitialiseerd. Erger nog, de berichten die horen bij een testresultaat worden verkregen door op de fout te klikken. De extra klikvereiste is een aanzienlijk probleem met de bruikbaarheid. Vanwege de wijzigingen in hoe gebreken worden weergegeven, is Visual Studio 2008 gebruikt voor schermafbeeldingen in dit boek.

Ten slotte wordt de testloopbaan niet langer gestart via dezelfde sneltoetsen als een normale toepassing. In plaats daarvan moet de ontwikkelaar Ctrl + R, A gebruiken om de tests uit te voeren. Er is geen sneltoets toegewezen om de eenheidstests te debuggen.

Visual Studio en NUnit Integration

Microsoft biedt integratietools voor NUnit voor zowel Visual Studio 2010 (http://visualstudiogallery.msdn.microsoft.com/c8164c71-0836-4471-80ce-633383031099) en 2012 (http://visualstudiogallery.msdn.microsoft.com/6ab922d0 -21c0-4f06-ab5f-4ecd1fe7175d), maar op het moment van dit schrijven is de Visual Studio 2012 NUnit testadapter een beta 3-2.


Andere testtools

Er zijn nog een paar andere test-engines die het vermelden waard zijn.

MSTest

MSTest (http://msdn.microsoft.com/en-us/library/ms182489 is de opdrachtregelversie van Microsoft's testrunner.

MbUnit / Gallio

MbUnit en Gallio zijn nauw met elkaar verbonden. Gallio is een platform voor testautomatisering waarmee u verschillende testkaders en rapportagetools kunt integreren. Dit is een geavanceerde tool die de moeite van het verkennen waard is zodra u bekend bent met de testprincipes van eenheden en andere motoren.

Microsoft Test Manager

Microsoft Test Manager is een hulpmiddel voor het plannen, beheren en uitvoeren van tests, handmatig of automatisch. Microsoft Test Manager kan worden geïntegreerd met bug-tracking, maakt notities mogelijk die aan uw tests zijn gekoppeld en biedt u de mogelijkheid virtuele laboratoriummachines te configureren die kunnen worden teruggezet naar een bekende staat voordat tests worden uitgevoerd.

FsUnit

FsUnit is een testengine die het werken met de F # -taal mogelijk maakt.


Integratie Test Frameworks

Het testen van eenheden is ontworpen om de juistheid van rekeneenheideenheden te valideren. Integratietests zijn ontworpen om het gedrag van de gebruikersinterface te testen.

NBehave

Voor lezers die bekend zijn met Ruby, is NBehave een vroeg prototype van functies die vergelijkbaar zijn met komkommer, in die zin dat het gedragstests schrijft. Tests zijn bijvoorbeeld geschreven in natuurlijke taal (beide voorbeelden zijn afkomstig van de GitHub NBehave-website):

Scenario: Inloggen Ik ben niet ingelogd Wanneer ik me aanmeld als Morgan met een wachtwoord SecretPassw0rd Dan zou ik een bericht moeten zien: "Welkom, Morgan!"

en methoden implementeren de zinnen (die natuurlijk opnieuw kunnen worden gebruikt):

[Gegeven ("Ik ben niet ingelogd")] public void LogOut () ...

Houd er rekening mee dat dit geen unit testing is, maar dat het een paradigma vergemakkelijkt dat gedragsgedreven ontwikkeling wordt genoemd en dat hier wordt vermeld om andere vormen van testen te illustreren die een aanvulling zijn op het testen van eenheden.