Kuinka kirjoittaa yksikkötestejä C#-kielellä koodin laadun parantamiseksi

Kuinka Kirjoittaa Yksikkotesteja C Kielella Koodin Laadun Parantamiseksi



Kun useimmat meistä aloittavat kehittäjänä, emme juuri ajattele tai käytä paljon aikaa yksikkötestaukseen. Kuitenkin, kun pääset monimutkaisempaan ja jaettuun arkistoympäristöön, on yhä tärkeämpää testata koodia ennen sen käyttöönottoa tuotantoon.

Siksi on tärkeää saada yksikkötestauksen perusteet varhaisessa kehitysvaiheessa, jotta vältytään oppimiskäyrältä, kun käsittelet laajoja koodikantoja.

Tässä opetusohjelmassa esittelemme sinut yksikkötestauksen puitteisiin C#:n ja MSTest-testauskirjaston avulla. Rakennamme perussovelluksen, jonka avulla opit luomaan yksikkötestejä, suorittamaan niitä ja tulkitsemaan testin epäonnistumisen tai onnistumisen tuloksia.







Testausympäristö

Aloitetaan keskustelemalla testiratkaisusta ja perussovelluksemme konfiguroinnista.



Jotta voit seurata ja kopioida tämän opetusohjelman sovellusta, varmista, että sinulla on seuraavat asiat:



  1. Visual Studio asennettu
  2. Konfiguroidut .NET- ja C#-työkalut koneellesi

Luo sovellus

Avaa seuraavaksi Visual Studio ja luo uusi ratkaisu. Tätä opetusohjelmaa varten rakennamme peruslaskinsovelluksen. Voit antaa hakemuksen haluamallasi nimellä.





Luo seuraavaksi uusi projekti ja valitse projektin tyypiksi MSTest Test Project ja anna sille haluamasi nimi.



Varmista, että valitset 'Lisää ratkaisuun' ja valitse aiemmin luotu sovellus.

Sinulla pitäisi olla pääsovellus ja yksikkötestausprojekti ratkaisunhallinnassa esitetyllä tavalla.

Kirjoita laskurisovelluksen koodi

Seuraava vaihe on koodin kirjoittaminen laskinsovelluksellemme. Voimme tehdä tämän CalcApp “program.cs”-tiedostossa.

Koska etsimme perustoimintoja, voimme lisätä lähdekoodin seuraavasti:

julkinen luokka Laskin
{
julkinen kaksinkertainen Lisätä ( kaksinkertainen a , kaksinkertainen b )
{
palata a + b ;
}

julkinen kaksinkertainen Vähentää ( kaksinkertainen a , kaksinkertainen b )
{
palata a - b ;
}

julkinen kaksinkertainen Kerro ( kaksinkertainen a , kaksinkertainen b )
{
palata a * b ;
}

julkinen kaksinkertainen Jakaa ( kaksinkertainen a , kaksinkertainen b )
{
jos ( b == 0 )
heittää uusi DivideByZeroException ( ) ;
palata a / b ;
}
}

Kuten arvata saattaa, edellinen koodi luo laskinsovelluksen, joka pystyy suorittamaan aritmeettiset perussovellukset.

Kirjoita yksikkötestit

Kun olemme valmiit, voimme kirjoittaa 'Laskin'-luokan yksikkötestit. Tässä tapauksessa meidän tarvitsee vain kirjoittaa testit projektin UnitTest-tiedostoon seuraavasti:

järjestelmän avulla ;

nimiavaruus CalcApp
{
julkinen luokka Laskin
{
julkinen kaksinkertainen Lisätä ( kaksinkertainen a , kaksinkertainen b )
{
palata a + b ;
}

julkinen kaksinkertainen Vähentää ( kaksinkertainen a , kaksinkertainen b )
{
palata a - b ;
}

julkinen kaksinkertainen Kerro ( kaksinkertainen a , kaksinkertainen b )
{
palata a * b ;
}

julkinen kaksinkertainen Jakaa ( kaksinkertainen a , kaksinkertainen b )
{
jos ( b == 0 )
heittää uusi DivideByZeroException ( ) ;
palata a / b ;
}
}
}

nimiavaruus CalcTest
{
[ Test Class ]
julkisen luokan CalculatorTests
{
yksityinen Laskin laskin ;

[ Testaa alusta ]
julkinen mitätön Perustaa ( )
{
laskin = uusi laskin ( ) ;
}

[ Testausmenetelmä ]
julkinen mitätön Add_TwoPositiveNumbers_ReturnsCorrectSum ( )
{
oli tulos = laskin. Lisätä ( 5 , 5 ) ;
Väitä. Ovat tasa-arvoisia ( 10 , tulos ) ;
}

[ Testausmenetelmä ]
julkinen mitätön Subtract_TwoPositiveNumbers_ReturnsCorrectDifference ( )
{
oli tulos = laskin. Vähentää ( 10 , 5 ) ;
Väitä. Ovat tasa-arvoisia ( 5 , tulos ) ;
}

[ Testausmenetelmä ]
julkinen mitätön Multiply_TwoPositiveNumbers_ReturnsCorrectProduct ( )
{
oli tulos = laskin. Kerro ( 5 , 5 ) ;
Väitä. Ovat tasa-arvoisia ( 25 , tulos ) ;
}

[ Testausmenetelmä ]
[ Odotettu poikkeus ( tyyppi ( DivideByZeroException ) ) ]
julkinen mitätön Divide_DenominatorIsZero_ThrowsDivideByZeroException ( )
{
oli tulos = laskin. Jakaa ( 5 , 0 ) ;
}

[ Testausmenetelmä ]
julkinen mitätön Divide_TwoPositiveNumbers_ReturnsCorrectQuotient ( )
{
oli tulos = laskin. Jakaa ( 10 , 5 ) ;
Väitä. Ovat tasa-arvoisia ( 2 , tulos ) ;
}
}
}

Johtopäätös

Tämä on perusopetusohjelma, joka kattaa yksikkötestauksen perusteet C#-kielellä MSTest-kehyksen avulla.