Cum să scrieți teste unitare în C# pentru o calitate mai bună a codului

Cum Sa Scrieti Teste Unitare In C Pentru O Calitate Mai Buna A Codului



Când cei mai mulți dintre noi încep ca dezvoltatori, cu greu ne gândim sau dedicăm mult timp testării unitare. Cu toate acestea, atunci când intrați într-un mediu de depozitare mai complex și partajat, devine din ce în ce mai esențial să testați codul înainte de a-l implementa în producție.

Prin urmare, este esențial să obțineți elementele fundamentale ale testării unitare la începutul etapelor de dezvoltare pentru a evita curba de învățare atunci când aveți de-a face cu baze de cod extinse.

În acest tutorial, vă vom introduce în cadrul testării unitare folosind C# și biblioteca de testare MSTest. Vom construi o aplicație de bază care vă va permite să învățați cum să creați testele unitare, cum să le rulați și cum să interpretați rezultatele unui eșec sau succes al unui test.







Mediul de testare

Să începem prin a discuta despre soluția de testare și despre cum să configuram aplicația noastră de bază.



Pentru a urmări și a replica aplicația în acest tutorial, asigurați-vă că aveți următoarele:



  1. S-a instalat Visual Studio
  2. Instrumente .NET și C# configurate pe mașina dvs

Creați o aplicație

Apoi, deschideți Visual Studio și creați o nouă soluție. Pentru acest tutorial, vom construi o aplicație de bază pentru calculator. Puteți da aplicației orice nume doriți.





Apoi, creați un nou proiect și selectați tipul de proiect ca MSTest Test Project și dați-i orice nume dorit.



Asigurați-vă că selectați „Adăugați la soluție” și alegeți aplicația creată anterior.

Ar trebui să aveți aplicația principală și proiectul de testare unitară, așa cum se arată în exploratorul de soluții.

Scrieți codul pentru aplicația Calculator

Următorul pas este scrierea codului pentru aplicația noastră de calculator. Putem face acest lucru în fișierul CalcApp „program.cs”.

Deoarece căutăm funcționalitate de bază, putem adăuga codul sursă după cum urmează:

Calculator de clasă publică
{
public dubla Adăuga ( dubla A , dubla b )
{
întoarcere A + b ;
}

public dubla Scădea ( dubla A , dubla b )
{
întoarcere A - b ;
}

public dubla Multiplica ( dubla A , dubla b )
{
întoarcere A * b ;
}

public dubla Divide ( dubla A , dubla b )
{
dacă ( b == 0 )
aruncați o nouă excepție DivideByZeroException ( ) ;
întoarcere A / b ;
}
}

După cum puteți ghici, codul anterior creează o aplicație de calculator care poate efectua aplicațiile de bază aritmetice.

Scrieți testele unitare

Odată ce am terminat, putem scrie testele unitare pentru clasa „Calculator”. În acest caz, tot ce trebuie să facem este să scriem testele în fișierul „UnitTest” al proiectului, după cum urmează:

folosind System ;

spațiu de nume CalcApp
{
Calculator de clasă publică
{
public dubla Adăuga ( dubla A , dubla b )
{
întoarcere A + b ;
}

public dubla Scădea ( dubla A , dubla b )
{
întoarcere A - b ;
}

public dubla Multiplica ( dubla A , dubla b )
{
întoarcere A * b ;
}

public dubla Divide ( dubla A , dubla b )
{
dacă ( b == 0 )
aruncați o nouă excepție DivideByZeroException ( ) ;
întoarcere A / b ;
}
}
}

spațiu de nume CalcTest
{
[ TestClass ]
clasă publică CalculatorTests
{
calculator calculator privat ;

[ TestInitialize ]
public gol Înființat ( )
{
calculator = Calculator nou ( ) ;
}

[ Metoda de test ]
public gol Add_TwoPositiveNumbers_ReturnsCorrectSum ( )
{
a fost rezultatul = calculator. Adăuga ( 5 , 5 ) ;
Afirma. Sunt egale ( 10 , rezultat ) ;
}

[ Metoda de test ]
public gol Subtract_TwoPositiveNumbers_ReturnsCorrectDifference ( )
{
a fost rezultatul = calculator. Scădea ( 10 , 5 ) ;
Afirma. Sunt egale ( 5 , rezultat ) ;
}

[ Metoda de test ]
public gol Multiply_TwoPositiveNumbers_ReturnsCorrectProduct ( )
{
a fost rezultatul = calculator. Multiplica ( 5 , 5 ) ;
Afirma. Sunt egale ( 25 , rezultat ) ;
}

[ Metoda de test ]
[ ExpectedException ( tip de ( DivideByZeroException ) ) ]
public gol Divide_DenominatorIsZero_ThrowsDivideByZeroException ( )
{
a fost rezultatul = calculator. Divide ( 5 , 0 ) ;
}

[ Metoda de test ]
public gol Divide_TwoPositiveNumbers_ReturnsCorrectQuotient ( )
{
a fost rezultatul = calculator. Divide ( 10 , 5 ) ;
Afirma. Sunt egale ( 2 , rezultat ) ;
}
}
}

Concluzie

Acesta este un tutorial de bază care acoperă elementele fundamentale ale testării unitare în C# folosind cadrul MSTest.