Hvordan skrive enhetstester i C# for bedre kodekvalitet

Hvordan Skrive Enhetstester I C For Bedre Kodekvalitet



Når de fleste av oss starter som utviklere, tenker vi knapt eller bruker mye tid på enhetstesting. Men når du kommer inn i et mer komplekst og delt depotmiljø, blir det mer og mer viktig å teste koden før du distribuerer den i produksjon.

Det er derfor viktig å få det grunnleggende om enhetstesting tidlig i utviklingsstadiene for å unngå læringskurven når du arbeider med omfattende kodebaser.

I denne opplæringen vil vi introdusere deg i rammeverket for enhetstesting ved hjelp av C# og MSTest-testbiblioteket. Vi vil bygge en grunnleggende applikasjon som lar deg lære hvordan du lager enhetstestene, hvordan du kjører dem og hvordan du tolker resultatene fra en feil eller suksess med en test.







Testmiljø

La oss starte med å diskutere testløsningen og hvordan vi konfigurerer vår grunnleggende applikasjon.



For å følge og replikere applikasjonen i denne opplæringen, sørg for at du har følgende:



  1. Installert Visual Studio
  2. Konfigurerte .NET- og C#-verktøy på maskinen din

Opprett en applikasjon

Deretter åpner du Visual Studio og lager en ny løsning. For denne opplæringen vil vi bygge en grunnleggende kalkulatorapplikasjon. Du kan gi applikasjonen et hvilket som helst navn du ønsker.





Deretter oppretter du et nytt prosjekt og velger prosjekttypen som MSTest Test Project og gir det et ønskelig navn.



Sørg for å velge 'Legg til løsning' og velg den tidligere opprettede appen.

Du bør ha hovedapplikasjonen og enhetstestingsprosjektet som vist i løsningsutforskeren.

Skriv koden for kalkulatorapplikasjonen

Det neste trinnet er å skrive koden for vår kalkulatorapplikasjon. Vi kan gjøre dette i CalcApp 'program.cs'-filen.

Siden vi ser etter grunnleggende funksjonalitet, kan vi legge til kildekoden som følger:

offentlig klassekalkulator
{
offentlig dobbelt Legg til ( dobbelt en , dobbelt b )
{
komme tilbake en + b ;
}

offentlig dobbelt Trekke fra ( dobbelt en , dobbelt b )
{
komme tilbake en - b ;
}

offentlig dobbelt Multiplisere ( dobbelt en , dobbelt b )
{
komme tilbake en * b ;
}

offentlig dobbelt Dele opp ( dobbelt en , dobbelt b )
{
hvis ( b == 0 )
kaste nye DivideByZeroException ( ) ;
komme tilbake en / b ;
}
}

Som du kan gjette, oppretter den forrige koden en kalkulator-app som kan utføre de grunnleggende aritmetiske applikasjonene.

Skriv enhetstestene

Når vi er ferdige, kan vi skrive enhetstestene for klassen 'Kalkulator'. I dette tilfellet er alt vi trenger å gjøre å skrive testene i 'UnitTest'-filen til prosjektet som følger:

bruker System ;

navneområde CalcApp
{
offentlig klassekalkulator
{
offentlig dobbelt Legg til ( dobbelt en , dobbelt b )
{
komme tilbake en + b ;
}

offentlig dobbelt Trekke fra ( dobbelt en , dobbelt b )
{
komme tilbake en - b ;
}

offentlig dobbelt Multiplisere ( dobbelt en , dobbelt b )
{
komme tilbake en * b ;
}

offentlig dobbelt Dele opp ( dobbelt en , dobbelt b )
{
hvis ( b == 0 )
kaste nye DivideByZeroException ( ) ;
komme tilbake en / b ;
}
}
}

navneområde CalcTest
{
[ Testklasse ]
offentlig klasse Kalkulatortester
{
privat kalkulator kalkulator ;

[ Testinitialiser ]
offentlig tomrom Oppsett ( )
{
kalkulator = ny kalkulator ( ) ;
}

[ Testmetode ]
offentlig tomrom Add_TwoPositiveNumbers_ReturnsCorrectSum ( )
{
ble resultatet = kalkulator. Legg til ( 5 , 5 ) ;
Påstå. Er like ( 10 , resultat ) ;
}

[ Testmetode ]
offentlig tomrom Subtract_TwoPositiveNumbers_ReturnsCorrectDifference ( )
{
ble resultatet = kalkulator. Trekke fra ( 10 , 5 ) ;
Påstå. Er like ( 5 , resultat ) ;
}

[ Testmetode ]
offentlig tomrom Multiply_ToPositiveNumbers_ReturnsCorrectProduct ( )
{
ble resultatet = kalkulator. Multiplisere ( 5 , 5 ) ;
Påstå. Er like ( 25 , resultat ) ;
}

[ Testmetode ]
[ ExpectedException ( type ( DivideByZeroException ) ) ]
offentlig tomrom Divide_DenominatorIsZero_ThrowsDivideByZeroException ( )
{
ble resultatet = kalkulator. Dele opp ( 5 , 0 ) ;
}

[ Testmetode ]
offentlig tomrom Divide_ToPositiveNumbers_ReturnsCorrectQuotient ( )
{
ble resultatet = kalkulator. Dele opp ( 10 , 5 ) ;
Påstå. Er like ( 2 , resultat ) ;
}
}
}

Konklusjon

Dette er en grunnleggende opplæring som dekker det grunnleggende om enhetstesting i C# ved å bruke MSTest-rammeverket.