Kaip rašyti vienetų testus C#, kad būtų geresnė kodo kokybė

Kaip Rasyti Vienetu Testus C Kad Butu Geresne Kodo Kokybe



Kai dauguma iš mūsų pradeda dirbti kaip kūrėjai, beveik negalvojame ir neskiriame daug laiko vienetų testavimui. Tačiau patekus į sudėtingesnę ir bendresnę saugyklos aplinką, tampa vis svarbiau išbandyti kodą prieš diegiant jį į gamybą.

Todėl labai svarbu išmokti vienetų testavimo pagrindus ankstyvoje kūrimo stadijoje, kad išvengtumėte mokymosi kreivės dirbant su plačiomis kodų bazėmis.

Šioje pamokoje supažindinsime su vienetų testavimo naudojant C# ir MSTest testavimo biblioteką sistemą. Sukursime pagrindinę programą, kuri leis jums sužinoti, kaip sukurti vienetų testus, kaip juos paleisti ir kaip interpretuoti nesėkmingo ar sėkmingo testo rezultatus.







Testavimo aplinka

Pradėkime aptardami bandomąjį sprendimą ir kaip sukonfigūruoti pagrindinę programą.



Norėdami sekti ir pakartoti šioje mokymo programoje pateiktą programą, įsitikinkite, kad turite:



  1. Įdiegta Visual Studio
  2. Sukonfigūruoti .NET ir C# įrankiai jūsų kompiuteryje

Sukurkite programą

Tada atidarykite „Visual Studio“ ir sukurkite naują sprendimą. Šiam mokymui sukursime pagrindinę skaičiuotuvo programą. Paraišką galite pateikti bet kokiu norimu pavadinimu.





Tada sukurkite naują projektą ir pasirinkite projekto tipą kaip MSTest Test Project ir suteikite jam bet kokį pageidaujamą pavadinimą.



Būtinai pasirinkite „Pridėti prie sprendimo“ ir pasirinkite anksčiau sukurtą programą.

Turėtumėte turėti pagrindinę programą ir įrenginio testavimo projektą, kaip parodyta sprendimų naršyklėje.

Parašykite skaičiuoklės programos kodą

Kitas žingsnis yra mūsų skaičiuoklės programos kodo rašymas. Tai galime padaryti CalcApp „program.cs“ faile.

Kadangi ieškome pagrindinių funkcijų, šaltinio kodą galime pridėti taip:

viešosios klasės skaičiuoklė
{
viešas dvigubai Papildyti ( dvigubai a , dvigubai b )
{
grąžinti a + b ;
}

viešas dvigubai Atimti ( dvigubai a , dvigubai b )
{
grąžinti a - b ;
}

viešas dvigubai Padauginti ( dvigubai a , dvigubai b )
{
grąžinti a * b ;
}

viešas dvigubai Padalinti ( dvigubai a , dvigubai b )
{
jeigu ( b == 0 )
mesti naują DivideByZeroException ( ) ;
grąžinti a / b ;
}
}

Kaip galite atspėti, ankstesnis kodas sukuria skaičiuotuvo programą, galinčią atlikti pagrindines aritmetikos programas.

Parašykite vienetų testus

Baigę galime parašyti „Skaičiuoklės“ klasės vienetų testus. Tokiu atveju mums tereikia įrašyti testus į projekto „UnitTest“ failą taip:

naudojant Sistemą ;

vardų sritis CalcApp
{
viešosios klasės skaičiuoklė
{
viešas dvigubai Papildyti ( dvigubai a , dvigubai b )
{
grąžinti a + b ;
}

viešas dvigubai Atimti ( dvigubai a , dvigubai b )
{
grąžinti a - b ;
}

viešas dvigubai Padauginti ( dvigubai a , dvigubai b )
{
grąžinti a * b ;
}

viešas dvigubai Padalinti ( dvigubai a , dvigubai b )
{
jeigu ( b == 0 )
mesti naują DivideByZeroException ( ) ;
grąžinti a / b ;
}
}
}

vardų sritis CalcTest
{
[ TestClass ]
viešoji klasė CalculatorTests
{
privati ​​skaičiuoklė ;

[ Bandymas inicijuoti ]
viešas tuštuma Sąranka ( )
{
skaičiuotuvas = naujas skaičiuotuvas ( ) ;
}

[ Bandymo metodas ]
viešas tuštuma Add_TwoPositiveNumbers_ReturnsCorrectSum ( )
{
buvo rezultatas = skaičiuotuvas. Papildyti ( 5 , 5 ) ;
Tvirtinti. AreEqual ( 10 , rezultatas ) ;
}

[ Bandymo metodas ]
viešas tuštuma Subtract_TwoPositiveNumbers_ReturnsCorrectDifference ( )
{
buvo rezultatas = skaičiuotuvas. Atimti ( 10 , 5 ) ;
Tvirtinti. AreEqual ( 5 , rezultatas ) ;
}

[ Bandymo metodas ]
viešas tuštuma Multiply_TwoPositiveNumbers_ReturnsCorrectProduct ( )
{
buvo rezultatas = skaičiuotuvas. Padauginti ( 5 , 5 ) ;
Tvirtinti. AreEqual ( 25 , rezultatas ) ;
}

[ Bandymo metodas ]
[ Numatoma išimtis ( tipas ( DivideByZeroException ) ) ]
viešas tuštuma Divide_DenominatorIsZero_ThrowsDivideByZeroException ( )
{
buvo rezultatas = skaičiuotuvas. Padalinti ( 5 , 0 ) ;
}

[ Bandymo metodas ]
viešas tuštuma Divide_TwoPositive Numbers_ReturnsCorrectQuotient ( )
{
buvo rezultatas = skaičiuotuvas. Padalinti ( 10 , 5 ) ;
Tvirtinti. AreEqual ( 2 , rezultatas ) ;
}
}
}

Išvada

Tai pagrindinė pamoka, apimanti vienetų testavimo pagrindus C# naudojant MSTest sistemą.