Unit-tests schrijven in C# voor een betere codekwaliteit

Unit Tests Schrijven In C Voor Een Betere Codekwaliteit



Wanneer de meesten van ons beginnen als ontwikkelaars, denken we nauwelijks na en besteden we nauwelijks tijd aan het testen van eenheden. Wanneer u echter in een complexere en gedeelde repository-omgeving terechtkomt, wordt het steeds belangrijker om de code te testen voordat u deze in productie neemt.

Het is daarom essentieel om de basisprincipes van unit-testen al vroeg in uw ontwikkelingsfase onder de knie te krijgen, om de leercurve bij het werken met uitgebreide codebases te vermijden.

In deze tutorial laten we u kennismaken met het raamwerk van unit-testen met behulp van C# en de MSTest-testbibliotheek. We zullen een basisapplicatie bouwen waarmee u kunt leren hoe u unit-tests kunt maken, hoe u deze kunt uitvoeren en hoe u de resultaten van een mislukte of succesvolle test kunt interpreteren.







Omgeving testen

Laten we beginnen met het bespreken van de testoplossing en het configureren van onze basisapplicatie.



Als u de toepassing in deze zelfstudie wilt volgen en repliceren, moet u ervoor zorgen dat u over het volgende beschikt:



  1. Visual Studio geïnstalleerd
  2. Geconfigureerde .NET- en C#-tools op uw machine

Maak een applicatie

Open vervolgens Visual Studio en maak een nieuwe oplossing. Voor deze zelfstudie bouwen we een eenvoudige rekenmachinetoepassing. U kunt de applicatie elke gewenste naam geven.





Maak vervolgens een nieuw project aan en selecteer als projecttype MSTest Test Project en geef het een gewenste naam.



Zorg ervoor dat u 'Toevoegen aan oplossing' selecteert en kies de eerder gemaakte app.

U moet over de hoofdtoepassing en het unit-testproject beschikken, zoals weergegeven in de oplossingsverkenner.

Schrijf de code voor de rekenmachinetoepassing

De volgende stap is het schrijven van de code voor onze rekenmachinetoepassing. We kunnen dit doen in het CalcApp “program.cs” bestand.

Omdat we op zoek zijn naar basisfunctionaliteit, kunnen we de broncode als volgt toevoegen:

openbare klasse rekenmachine
{
openbaar dubbele Toevoegen ( dubbele A , dubbele B )
{
opbrengst A + B ;
}

openbaar dubbele Aftrekken ( dubbele A , dubbele B )
{
opbrengst A - B ;
}

openbaar dubbele Vermenigvuldigen ( dubbele A , dubbele B )
{
opbrengst A * B ;
}

openbaar dubbele Verdeling ( dubbele A , dubbele B )
{
als ( B == 0 )
nieuwe DivideByZeroException gooien ( ) ;
opbrengst A / B ;
}
}

Zoals je kunt raden, creëert de vorige code een rekenmachine-app die de basis rekenkundige toepassingen kan uitvoeren.

Schrijf de eenheidstests

Als we klaar zijn, kunnen we de eenheidstests voor de klasse 'Calculator' schrijven. In dit geval hoeven we alleen maar de tests als volgt in het bestand “UnitTest” van het project te schrijven:

met behulp van Systeem ;

naamruimte CalcApp
{
openbare klasse rekenmachine
{
openbaar dubbele Toevoegen ( dubbele A , dubbele B )
{
opbrengst A + B ;
}

openbaar dubbele Aftrekken ( dubbele A , dubbele B )
{
opbrengst A - B ;
}

openbaar dubbele Vermenigvuldigen ( dubbele A , dubbele B )
{
opbrengst A * B ;
}

openbaar dubbele Verdeling ( dubbele A , dubbele B )
{
als ( B == 0 )
nieuwe DivideByZeroException gooien ( ) ;
opbrengst A / B ;
}
}
}

naamruimte CalcTest
{
[ TestKlasse ]
openbare klasse CalculatorTests
{
privé rekenmachine rekenmachine ;

[ TestInitialiseren ]
openbaar leegte Opgericht ( )
{
rekenmachine = nieuwe rekenmachine ( ) ;
}

[ Test methode ]
openbaar leegte Add_TwoPositiveNumbers_ReturnsCorrectSom ( )
{
was het resultaat = rekenmachine. Toevoegen ( 5 , 5 ) ;
Beweren. Zijn gelijk ( 10 , resultaat ) ;
}

[ Test methode ]
openbaar leegte Subtract_TwoPositiveNumbers_ReturnsCorrectDifference ( )
{
was het resultaat = rekenmachine. Aftrekken ( 10 , 5 ) ;
Beweren. Zijn gelijk ( 5 , resultaat ) ;
}

[ Test methode ]
openbaar leegte Multiply_TwoPositiveNumbers_ReturnsCorrectProduct ( )
{
was het resultaat = rekenmachine. Vermenigvuldigen ( 5 , 5 ) ;
Beweren. Zijn gelijk ( 25 , resultaat ) ;
}

[ Test methode ]
[ Verwachte uitzondering ( soort van ( DivideByZeroException ) ) ]
openbaar leegte Divide_DenominatorIsZero_ThrowsDivideByZeroException ( )
{
was het resultaat = rekenmachine. Verdeling ( 5 , 0 ) ;
}

[ Test methode ]
openbaar leegte Divide_TwoPositiveNumbers_ReturnsCorrectQuotient ( )
{
was het resultaat = rekenmachine. Verdeling ( 10 , 5 ) ;
Beweren. Zijn gelijk ( 2 , resultaat ) ;
}
}
}

Conclusie

Dit is een basistutorial die de basisprincipes van unit-testen in C# behandelt met behulp van het MSTest-framework.