Paano Sumulat ng Mga Unit Test sa C# para sa Mas Mahusay na Kalidad ng Code

Paano Sumulat Ng Mga Unit Test Sa C Para Sa Mas Mahusay Na Kalidad Ng Code



Kapag ang karamihan sa atin ay nagsisimula bilang mga developer, halos hindi tayo nag-iisip o naglalaan ng maraming oras sa pagsubok ng unit. Gayunpaman, kapag napunta ka sa isang mas kumplikado at nakabahaging kapaligiran ng repositoryo, nagiging mas at mas mahalaga na subukan ang code bago ito i-deploy sa produksyon.

Samakatuwid, mahalaga na makuha ang mga batayan ng pagsubok sa yunit nang maaga sa iyong mga yugto ng pag-unlad upang maiwasan ang kurba ng pagkatuto kapag nakikitungo sa malawak na mga codebase.

Sa tutorial na ito, ipapakilala namin sa iyo ang balangkas ng pagsubok ng unit gamit ang C# at ang library ng pagsubok sa MSTest. Bubuo kami ng isang pangunahing application na magbibigay-daan sa iyong matutunan kung paano gumawa ng mga unit test, kung paano patakbuhin ang mga ito, at kung paano bigyang-kahulugan ang mga resulta mula sa isang pagkabigo o tagumpay ng isang pagsubok.







Kapaligiran sa Pagsubok

Magsimula tayo sa pamamagitan ng pagtalakay sa solusyon sa pagsubok at kung paano i-configure ang aming pangunahing aplikasyon.



Upang sundan at gayahin ang application sa tutorial na ito, tiyaking mayroon kang sumusunod:



  1. Naka-install na Visual Studio
  2. Na-configure ang .NET at C# na mga tool sa iyong makina

Gumawa ng Application

Susunod, buksan ang Visual Studio at lumikha ng bagong solusyon. Para sa tutorial na ito, bubuo kami ng pangunahing calculator application. Maaari mong ibigay ang application sa anumang pangalan na gusto mo.





Susunod, lumikha ng bagong proyekto at piliin ang uri ng proyekto bilang MSTest Test Project at bigyan ito ng anumang gustong pangalan.



Tiyaking piliin ang 'Idagdag sa solusyon' at piliin ang dating ginawang app.

Dapat ay mayroon kang pangunahing aplikasyon at ang proyekto sa pagsubok ng yunit tulad ng ipinapakita sa explorer ng solusyon.

Isulat ang Code para sa Calculator Application

Ang susunod na hakbang ay ang pagsulat ng code para sa aming calculator application. Magagawa namin ito sa CalcApp 'program.cs' file.

Dahil naghahanap kami ng pangunahing pag-andar, maaari naming idagdag ang source code tulad ng sumusunod:

pampublikong klase Calculator
{
pampubliko doble Idagdag ( doble a , doble b )
{
bumalik a + b ;
}

pampubliko doble Ibawas ( doble a , doble b )
{
bumalik a - b ;
}

pampubliko doble Paramihin ( doble a , doble b )
{
bumalik a * b ;
}

pampubliko doble Hatiin ( doble a , doble b )
{
kung ( b == 0 )
magtapon ng bagong DivideByZeroException ( ) ;
bumalik a / b ;
}
}

Tulad ng maaari mong hulaan, ang nakaraang code ay lumilikha ng isang calculator app na maaaring magsagawa ng mga pangunahing aplikasyon ng arithmetic.

Isulat ang Unit Tests

Kapag tapos na tayo, maaari nating isulat ang mga unit test para sa klase ng 'Calculator'. Sa kasong ito, ang kailangan lang nating gawin ay isulat ang mga pagsubok sa 'UnitTest' file ng proyekto tulad ng sumusunod:

gamit ang System ;

namespace CalcApp
{
pampublikong klase Calculator
{
pampubliko doble Idagdag ( doble a , doble b )
{
bumalik a + b ;
}

pampubliko doble Ibawas ( doble a , doble b )
{
bumalik a - b ;
}

pampubliko doble Paramihin ( doble a , doble b )
{
bumalik a * b ;
}

pampubliko doble Hatiin ( doble a , doble b )
{
kung ( b == 0 )
magtapon ng bagong DivideByZeroException ( ) ;
bumalik a / b ;
}
}
}

namespace CalcTest
{
[ TestClass ]
pampublikong klase CalculatorTests
{
pribadong Calculator calculator ;

[ TestInitialize ]
pampubliko walang bisa Setup ( )
{
calculator = bagong Calculator ( ) ;
}

[ Paraan ng Pagsubok ]
pampubliko walang bisa Add_TwoPositiveNumbers_ReturnsCorrectSum ( )
{
ang naging resulta = calculator. Idagdag ( 5 , 5 ) ;
Igiit. AreEqual ( 10 , resulta ) ;
}

[ Paraan ng Pagsubok ]
pampubliko walang bisa Subtract_TwoPositiveNumbers_ReturnsCorrectDifference ( )
{
ang naging resulta = calculator. Ibawas ( 10 , 5 ) ;
Igiit. AreEqual ( 5 , resulta ) ;
}

[ Paraan ng Pagsubok ]
pampubliko walang bisa Multiply_TwoPositiveNumbers_ReturnsCorrectProduct ( )
{
ang naging resulta = calculator. Paramihin ( 5 , 5 ) ;
Igiit. AreEqual ( 25 , resulta ) ;
}

[ Paraan ng Pagsubok ]
[ ExpectedException ( uri ng ( DivideByZeroException ) ) ]
pampubliko walang bisa Divide_DenominatorIsZero_ThrowsDivideByZeroException ( )
{
ang naging resulta = calculator. Hatiin ( 5 , 0 ) ;
}

[ Paraan ng Pagsubok ]
pampubliko walang bisa Divide_TwoPositiveNumbers_ReturnsCorrectQuotient ( )
{
ang naging resulta = calculator. Hatiin ( 10 , 5 ) ;
Igiit. AreEqual ( 2 , resulta ) ;
}
}
}

Konklusyon

Ito ay isang pangunahing tutorial na sumasaklaw sa mga pangunahing kaalaman ng unit testing sa C# gamit ang MSTest framework.