Detta är ett utdrag från Unit Testing Succinctly eBook, av Marc Clifton, vänligt tillhandahållen av Syncfusion.
NUnit var ursprungligen portad från JUnit som en testmotor med öppen källkod, som ger en rik svit av testfixtur, metod och variabla attribut samt testkrav. Dokumentationen för alla versioner av NUnit finns här. NUnit underhålls fortfarande. Den senaste stabila versionen vid skrivetiden är version 2.6.2, släppt den 22 oktober 2012.
CSUnit är en lättare enhetstestmotor. Observera att det inte verkar bibehållas, eftersom den senaste utgåvan var i mars 2009. Den erbjuder en minimal men funktionell uppsättning attribut som ska användas för att definiera testinställningar och testmetoder.
Visual Studio ger möjlighet att skapa testprojekt direkt i IDE. Ett av de problem som författaren upptäckte är att användargränssnittet har ändrats mellan VS 2008 och VS 2012:
I VS2008 kör testkörningen mycket snabbt och visar en lättläst lista över testresultat och, för misslyckade test, felmeddelandet ger information om varför testet misslyckades.
När testprojektet är det aktiva projektet, körs testen (eller felsöker dem) samma som med någon annan applikation. Du kan köra dem med Ctrl + F5 (kör) eller F5 (debug).
I VS2012 tar testlöparen flera sekunder att initiera. Värre är de meddelanden som hör samman med ett testresultat genom att klicka på felet. Det extra klickkravet är ett viktigt användbarhetsproblem. På grund av förändringarna i hur fel uppstår har Visual Studio 2008 använts för skärmdumpar i hela denna bok.
Slutligen startas testlöparen inte längre med samma genvägar som en vanlig applikation. Istället måste utvecklaren använda Ctrl + R, A för att köra testen. Det finns ingen tangentbordsgenväg mappad för att felsöka enhetstesterna.
Microsoft tillhandahåller integrationsverktyg för NUnit för både Visual Studio 2010 (http://visualstudiogallery.msdn.microsoft.com/c8164c71-0836-4471-80ce-633383031099) och 2012 (http://visualstudiogallery.msdn.microsoft.com/6ab922d0 -21c0-4f06-ab5f-4ecd1fe7175d), men vid skrivningstidpunkten är Visual Studio 2012 NUnit-testadaptern en beta 3-2.
Det finns några andra testmotorer som är värda att nämna här.
MSTest (http://msdn.microsoft.com/en-us/library/ms182489 är kommandoradsversionen av Microsofts testlöpare.
MbUnit och Gallio är nära besläktade. Gallio är en testautomatiseringsplattform som gör att du kan integrera olika testramar och rapporteringsverktyg. Detta är ett sofistikerat verktyg som är värt att utforska när du är bekant med principer för testning av enheter och andra motorer.
Microsoft Test Manager är ett verktyg för planering, hantering och körning av test, antingen manuellt eller automatiskt. Microsoft Test Manager integreras med felspårning, gör det möjligt att skriva anteckningar som är kopplade till dina test och låter dig konfigurera virtuella labbmaskiner som kan återställas till ett känt tillstånd innan testerna körs.
FsUnit är en testmotor som underlättar arbetet med F # -språket.
Enhetstestning är utformad för att validera korrektheten av beräkningskodsenheter. Integrationstestning är utformad för att testa användargränssnittets beteende.
För läsare som är bekant med Ruby är NBehave en tidig prototyp av funktioner som liknar Gurka i den som skriver beteendestest. Test är skrivna i naturligt språk, till exempel (båda dessa exempel kommer från GitHub NBehave hemsida):
Scenario: Logga in Eftersom jag inte är inloggad När jag loggar in som Morgan med ett lösenord SecretPassw0rd Då ska jag se ett meddelande, "Välkommen, Morgan!"
och metoder implementerar fraserna (som naturligtvis kan återanvändas):
[Given ("Jag är inte inloggad")] public void LogOut () ...
Tänk på att detta inte är enhetstestning, utan det underlättar ett paradigm som kallas beteendestyrd utveckling och nämns här för att illustrera andra former av testning som komplement-enhetstestning.