Sådan skriver du enhedstests i C# for bedre kodekvalitet

Sadan Skriver Du Enhedstests I C For Bedre Kodekvalitet



Når de fleste af os starter som udviklere, tænker eller bruger vi næsten ikke meget tid på enhedstestning. Men når du kommer ind i et mere komplekst og delt lagermiljø, bliver det mere og mere vigtigt at teste koden, før den implementeres i produktion.

Det er derfor vigtigt at få det grundlæggende i enhedstest tidligt i dine udviklingsstadier for at undgå indlæringskurven, når du har at gøre med omfattende kodebaser.

I denne tutorial vil vi introducere dig i rammerne for enhedstest ved hjælp af C# og MSTest-testbiblioteket. Vi vil bygge en grundlæggende applikation, der giver dig mulighed for at lære, hvordan du opretter enhedstestene, hvordan du kører dem, og hvordan du fortolker resultaterne fra en fejl eller succes med en test.







Testmiljø

Lad os starte med at diskutere testløsningen og hvordan vi konfigurerer vores grundlæggende applikation.



For at følge og replikere applikationen i denne tutorial skal du sikre dig, at du har følgende:



  1. Installeret Visual Studio
  2. Konfigurerede .NET- og C#-værktøjer på din maskine

Opret en applikation

Åbn derefter Visual Studio og opret en ny løsning. Til denne tutorial vil vi bygge en grundlæggende lommeregnerapplikation. Du kan give applikationen et hvilket som helst navn, du ønsker.





Derefter skal du oprette et nyt projekt og vælge projekttypen som MSTest Test Project og give det et hvilket som helst ønskeligt navn.



Sørg for at vælge 'Tilføj til løsning' og vælg den tidligere oprettede app.

Du bør have hovedapplikationen og enhedstestprojektet som vist i løsningsudforskeren.

Skriv koden til lommeregnerapplikationen

Det næste trin er at skrive koden til vores lommeregnerapplikation. Vi kan gøre dette i CalcApp 'program.cs' filen.

Da vi leder efter grundlæggende funktionalitet, kan vi tilføje kildekoden som følger:

offentlig klasse Lommeregner
{
offentlig dobbelt Tilføje ( dobbelt -en , dobbelt b )
{
Vend tilbage -en + b ;
}

offentlig dobbelt Trække fra ( dobbelt -en , dobbelt b )
{
Vend tilbage -en - b ;
}

offentlig dobbelt Formere sig ( dobbelt -en , dobbelt b )
{
Vend tilbage -en * b ;
}

offentlig dobbelt Dele ( dobbelt -en , dobbelt b )
{
hvis ( b == 0 )
smid nyt DivideByZeroException ( ) ;
Vend tilbage -en / b ;
}
}

Som du kan gætte, opretter den forrige kode en lommeregner-app, der kan udføre de grundlæggende aritmetiske applikationer.

Skriv enhedsprøverne

Når vi er færdige, kan vi skrive enhedstestene til klassen 'Lommeregner'. I dette tilfælde er alt, hvad vi skal gøre, at skrive testene i projektets 'UnitTest'-fil som følger:

ved hjælp af System ;

navneområde CalcApp
{
offentlig klasse Lommeregner
{
offentlig dobbelt Tilføje ( dobbelt -en , dobbelt b )
{
Vend tilbage -en + b ;
}

offentlig dobbelt Trække fra ( dobbelt -en , dobbelt b )
{
Vend tilbage -en - b ;
}

offentlig dobbelt Formere sig ( dobbelt -en , dobbelt b )
{
Vend tilbage -en * b ;
}

offentlig dobbelt Dele ( dobbelt -en , dobbelt b )
{
hvis ( b == 0 )
smid nyt DivideByZeroException ( ) ;
Vend tilbage -en / b ;
}
}
}

navneområde CalcTest
{
[ Testklasse ]
offentlige klasse LommeregnerTests
{
privat Lommeregner lommeregner ;

[ TestInitialiser ]
offentlig ugyldig Opsætning ( )
{
lommeregner = ny lommeregner ( ) ;
}

[ Testmetode ]
offentlig ugyldig Add_TwoPositiveNumbers_ReturnsCorrectSum ( )
{
blev resultatet = lommeregner. Tilføje ( 5 , 5 ) ;
Hævde. Er lige ( 10 , resultat ) ;
}

[ Testmetode ]
offentlig ugyldig Subtract_TwoPositiveNumbers_ReturnsCorrectDifference ( )
{
blev resultatet = lommeregner. Trække fra ( 10 , 5 ) ;
Hævde. Er lige ( 5 , resultat ) ;
}

[ Testmetode ]
offentlig ugyldig Multiply_ToPositiveNumbers_ReturnsCorrectProduct ( )
{
blev resultatet = lommeregner. Formere sig ( 5 , 5 ) ;
Hævde. Er lige ( 25 , resultat ) ;
}

[ Testmetode ]
[ ExpectedException ( type ( DivideByZeroException ) ) ]
offentlig ugyldig Divide_DenominatorIsZero_ThrowsDivideByZeroException ( )
{
blev resultatet = lommeregner. Dele ( 5 , 0 ) ;
}

[ Testmetode ]
offentlig ugyldig Divide_ToPositiveNumbers_ReturnsCorrectQuotient ( )
{
blev resultatet = lommeregner. Dele ( 10 , 5 ) ;
Hævde. Er lige ( 2 , resultat ) ;
}
}
}

Konklusion

Dette er en grundlæggende tutorial, der dækker det grundlæggende i enhedstestning i C# ved hjælp af MSTest-rammerne.