Ako písať testy jednotiek v C# pre lepšiu kvalitu kódu

Ako Pisat Testy Jednotiek V C Pre Lepsiu Kvalitu Kodu



Keď väčšina z nás začína ako vývojári, sotva premýšľame alebo nevenujeme veľa času testovaniu jednotiek. Keď sa však dostanete do zložitejšieho a zdieľaného prostredia úložiska, je čoraz dôležitejšie testovať kód pred jeho nasadením do produkcie.

Preto je nevyhnutné získať základy testovania jednotiek už v počiatočných fázach vývoja, aby ste sa vyhli krivke učenia pri práci s rozsiahlymi kódovými základňami.

V tomto návode vám predstavíme rámec testovania jednotiek pomocou jazyka C# a testovacej knižnice MSTest. Vytvoríme základnú aplikáciu, ktorá vám umožní naučiť sa vytvárať unit testy, ako ich spúšťať a ako interpretovať výsledky z neúspechu alebo úspechu testu.







Testovacie prostredie

Začnime diskusiou o testovacom riešení a o tom, ako nakonfigurovať našu základnú aplikáciu.



Ak chcete sledovať a replikovať aplikáciu v tomto návode, uistite sa, že máte nasledujúce:



  1. Nainštalované Visual Studio
  2. Nakonfigurované nástroje .NET a C# na vašom počítači

Vytvorte aplikáciu

Potom otvorte Visual Studio a vytvorte nové riešenie. Pre tento tutoriál vytvoríme základnú aplikáciu kalkulačky. Aplikácii môžete dať ľubovoľné meno.





Ďalej vytvorte nový projekt a vyberte typ projektu ako MSTest Test Project a dajte mu ľubovoľný požadovaný názov.



Nezabudnite vybrať možnosť „Pridať do riešenia“ a vyberte predtým vytvorenú aplikáciu.

Mali by ste mať hlavnú aplikáciu a projekt testovania jednotiek, ako je uvedené v prieskumníkovi riešení.

Napíšte kód pre aplikáciu kalkulačky

Ďalším krokom je napísanie kódu pre našu aplikáciu kalkulačky. Môžeme to urobiť v súbore CalcApp „program.cs“.

Keďže hľadáme základnú funkcionalitu, môžeme pridať zdrojový kód takto:

kalkulačka verejnej triedy
{
verejnosti dvojitý Pridať ( dvojitý a , dvojitý b )
{
vrátiť a + b ;
}

verejnosti dvojitý Odčítať ( dvojitý a , dvojitý b )
{
vrátiť a - b ;
}

verejnosti dvojitý Vynásobte ( dvojitý a , dvojitý b )
{
vrátiť a * b ;
}

verejnosti dvojitý Rozdeliť ( dvojitý a , dvojitý b )
{
ak ( b == 0 )
hodí novú výnimku DivideByZeroException ( ) ;
vrátiť a / b ;
}
}

Ako môžete hádať, predchádzajúci kód vytvára aplikáciu kalkulačky, ktorá dokáže vykonávať základné aritmetické aplikácie.

Napíšte Unit Tests

Keď skončíme, môžeme napísať jednotkové testy pre triedu „Kalkulačka“. V tomto prípade všetko, čo musíme urobiť, je napísať testy do súboru „UnitTest“ projektu takto:

pomocou systému ;

menný priestor CalcApp
{
kalkulačka verejnej triedy
{
verejnosti dvojitý Pridať ( dvojitý a , dvojitý b )
{
vrátiť a + b ;
}

verejnosti dvojitý Odčítať ( dvojitý a , dvojitý b )
{
vrátiť a - b ;
}

verejnosti dvojitý Vynásobte ( dvojitý a , dvojitý b )
{
vrátiť a * b ;
}

verejnosti dvojitý Rozdeliť ( dvojitý a , dvojitý b )
{
ak ( b == 0 )
hodí novú výnimku DivideByZeroException ( ) ;
vrátiť a / b ;
}
}
}

menný priestor CalcTest
{
[ TestClass ]
verejná trieda CalculatorTests
{
súkromná kalkulačka kalkulačka ;

[ TestInitialize ]
verejnosti neplatné Nastaviť ( )
{
kalkulačka = nová kalkulačka ( ) ;
}

[ Testovacia metóda ]
verejnosti neplatné Add_TwoPositiveNumbers_ReturnsCorrectSum ( )
{
bol výsledok = kalkulačka. Pridať ( 5 , 5 ) ;
Tvrdiť. AreEqual ( 10 , výsledok ) ;
}

[ Testovacia metóda ]
verejnosti neplatné Subtract_TwoPositiveNumbers_ReturnsCorrectDifference ( )
{
bol výsledok = kalkulačka. Odčítať ( 10 , 5 ) ;
Tvrdiť. AreEqual ( 5 , výsledok ) ;
}

[ Testovacia metóda ]
verejnosti neplatné Multiply_TwoPositiveNumbers_ReturnsCorrectProduct ( )
{
bol výsledok = kalkulačka. Vynásobte ( 5 , 5 ) ;
Tvrdiť. AreEqual ( 25 , výsledok ) ;
}

[ Testovacia metóda ]
[ ExpectedException ( Typ ( Výnimka DivideByZero ) ) ]
verejnosti neplatné Divide_DenominatorIsZero_ThrowsDivideByZeroException ( )
{
bol výsledok = kalkulačka. Rozdeliť ( 5 , 0 ) ;
}

[ Testovacia metóda ]
verejnosti neplatné Divide_TwoPositiveNumbers_ReturnsCorrectQuotient ( )
{
bol výsledok = kalkulačka. Rozdeliť ( 10 , 5 ) ;
Tvrdiť. AreEqual ( 2 , výsledok ) ;
}
}
}

Záver

Toto je základný návod, ktorý pokrýva základy testovania jednotiek v C# pomocou rámca MSTest.