Det är därför viktigt att få grunderna för enhetstestning tidigt i dina utvecklingsstadier för att undvika inlärningskurvan när du hanterar omfattande kodbaser.
I den här handledningen kommer vi att introducera dig i ramverket för enhetstestning med C# och testbiblioteket MSTest. Vi kommer att bygga en grundläggande applikation som låter dig lära dig hur du skapar enhetstesten, hur du kör dem och hur du tolkar resultaten från ett misslyckande eller framgång med ett test.
Testmiljö
Låt oss börja med att diskutera testlösningen och hur vi konfigurerar vår grundläggande applikation.
För att följa och replikera applikationen i denna handledning, se till att du har följande:
- Installerade Visual Studio
- Konfigurerade .NET- och C#-verktyg på din maskin
Skapa en applikation
Öppna sedan Visual Studio och skapa en ny lösning. För den här handledningen kommer vi att bygga en grundläggande kalkylatorapplikation. Du kan ge ansökan med vilket namn du vill.
Skapa sedan ett nytt projekt och välj projekttypen som MSTest Test Project och ge det ett önskvärt namn.
Se till att välja 'Lägg till lösning' och välj den tidigare skapade appen.
Du bör ha huvudapplikationen och enhetstestningsprojektet som visas i lösningsutforskaren.
Skriv koden för kalkylatorapplikationen
Nästa steg är att skriva koden för vår kalkylatorapplikation. Vi kan göra detta i CalcApp-filen 'program.cs'.
Eftersom vi letar efter grundläggande funktionalitet kan vi lägga till källkoden enligt följande:
miniräknare för offentlig klass{
offentlig dubbel Lägg till ( dubbel a , dubbel b )
{
lämna tillbaka a + b ;
}
offentlig dubbel Subtrahera ( dubbel a , dubbel b )
{
lämna tillbaka a - b ;
}
offentlig dubbel Multiplicera ( dubbel a , dubbel b )
{
lämna tillbaka a * b ;
}
offentlig dubbel Dela upp ( dubbel a , dubbel b )
{
om ( b == 0 )
kasta nya DivideByZeroException ( ) ;
lämna tillbaka a / b ;
}
}
Som du kan gissa skapar den tidigare koden en kalkylatorapp som kan utföra de grundläggande aritmetiska applikationerna.
Skriv enhetstesten
När vi är klara kan vi skriva enhetstesten för klassen 'Kalkylator'. I det här fallet behöver vi bara skriva testerna i projektets 'UnitTest'-fil enligt följande:
använder System ;namnutrymme CalcApp
{
miniräknare för offentlig klass
{
offentlig dubbel Lägg till ( dubbel a , dubbel b )
{
lämna tillbaka a + b ;
}
offentlig dubbel Subtrahera ( dubbel a , dubbel b )
{
lämna tillbaka a - b ;
}
offentlig dubbel Multiplicera ( dubbel a , dubbel b )
{
lämna tillbaka a * b ;
}
offentlig dubbel Dela upp ( dubbel a , dubbel b )
{
om ( b == 0 )
kasta nya DivideByZeroException ( ) ;
lämna tillbaka a / b ;
}
}
}
namnutrymme CalcTest
{
[ Testklass ]
kalkylatortest i offentlig klass
{
privat kalkylator kalkylator ;
[ Testinitialisera ]
offentlig tomhet Uppstart ( )
{
kalkylator = ny kalkylator ( ) ;
}
[ Testmetod ]
offentlig tomhet Add_TwoPositiveNumbers_ReturnsCorrectSum ( )
{
var result = kalkylator. Lägg till ( 5 , 5 ) ;
Hävda. Är jämlika ( 10 , resultat ) ;
}
[ Testmetod ]
offentlig tomhet Subtract_TwoPositiveNumbers_ReturnsCorrectDifference ( )
{
var result = kalkylator. Subtrahera ( 10 , 5 ) ;
Hävda. Är jämlika ( 5 , resultat ) ;
}
[ Testmetod ]
offentlig tomhet Multiply_TwoPositiveNumbers_ReturnsCorrectProduct ( )
{
var result = kalkylator. Multiplicera ( 5 , 5 ) ;
Hävda. Är jämlika ( 25 , resultat ) ;
}
[ Testmetod ]
[ ExpectedException ( sorts ( DivideByZeroException ) ) ]
offentlig tomhet Divide_DenominatorIsZero_ThrowsDivideByZeroException ( )
{
var result = kalkylator. Dela upp ( 5 , 0 ) ;
}
[ Testmetod ]
offentlig tomhet Divide_TwoPositiveNumbers_ReturnsCorrectQuotient ( )
{
var result = kalkylator. Dela upp ( 10 , 5 ) ;
Hävda. Är jämlika ( 2 , resultat ) ;
}
}
}
Slutsats
Detta är en grundläggande handledning som täcker grunderna för enhetstestning i C# med MSTest-ramverket.