Enhetsprovning Succinkt Enhetstestverktyg

Detta är ett utdrag från Unit Testing Succinctly eBook, av Marc Clifton, vänligt tillhandahållen av Syncfusion.

NUnit

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

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 Test Project

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:

Visual Studio 2008 Testresultat UI

VS2008 Testresultat UI

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).

Visual Studio 2012 Testresultat UI

VS2012 Testresultat UI

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.

Visual Studio och NUnit Integration

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.


Andra enheter Testverktyg

Det finns några andra testmotorer som är värda att nämna här.

MSTest

MSTest (http://msdn.microsoft.com/en-us/library/ms182489 är kommandoradsversionen av Microsofts testlöpare.

MbUnit / Gallio

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

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

FsUnit är en testmotor som underlättar arbetet med F # -språket.


Integration Testing Framework

Enhetstestning är utformad för att validera korrektheten av beräkningskodsenheter. Integrationstestning är utformad för att testa användargränssnittets beteende.

NBehave

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.