Testa i .NET
Den här artikeln beskriver begreppet testning och illustrerar hur olika typer av tester kan användas för att validera kod. Det finns olika verktyg för att testa .NET-program, till exempel .NET CLI- eller IDE(Integrated Development Environments).
Testtyper
Automatiserade tester är ett bra sätt att se till att programkoden gör vad författarna har för avsikt. Den här artikeln beskriver enhetstester, integreringstester och belastningstester.
Enhetstester
Ett enhetstest är ett test som utför enskilda programvarukomponenter eller metoder, även kallat en "arbetsenhet". Enhetstester bör endast testa kod inom utvecklarens kontroll. De testar inte infrastrukturproblem. Infrastrukturproblem omfattar interaktion med databaser, filsystem och nätverksresurser.
Mer information om hur du skapar enhetstester finns i Testverktyg.
Integreringstester
Ett integrationstest skiljer sig från ett enhetstest eftersom det utövar två eller flera programvarukomponenters förmåga att fungera tillsammans, även kallat deras "integrering". Dessa tester körs på ett bredare spektrum av systemet som testas, medan enhetstester fokuserar på enskilda komponenter. Integreringstester omfattar ofta infrastrukturproblem.
Belastningstester
Ett belastningstest syftar till att avgöra om ett system kan hantera en angiven belastning eller inte. Till exempel antalet samtidiga användare som använder ett program och appens möjlighet att hantera interaktioner dynamiskt. Mer information om belastningstestning av webbprogram finns i ASP.NET Core-belastnings-/stresstestning.
Testöverväganden
Tänk på att det finns bästa praxis för att skriva tester. Till exempel testdriven utveckling (TDD) är när du skriver ett enhetstest innan du skriver koden som det är avsett att kontrollera. TDD är som att skapa en disposition för en bok innan du skriver den. Enhetstestet hjälper utvecklare att skriva enklare, läsbar och effektiv kod.
Testverktyg
När du kör tester i .NET finns det två komponenter: testplattformen och testramverket.
Testplattformar
Testplattformen är den motor som kör testerna och fungerar som en kommunikationskanal med IDE:er. Visual Studio kan till exempel skicka en identifieringsbegäran till testplattformen så att den kan visa tillgängliga tester i Test Explorer. Testplattformen svarar tillbaka på IDE med de tester som hittades. Liknande kommunikation sker för testutförande.
VSTest har använts i många år i .NET och var den enda testplattformen i ekosystemet. I början av 2024 släpptes den första stabila versionen av en ny testplattform som heter Microsoft.Testing.Platform (MTP).
Testramverk
Testramverket bygger på testplattformen. Den definierar den uppsättning attribut och API:er som är tillgängliga för dig som testförfattare. Den drivs vanligtvis av ett testkort som fungerar som ett kommunikationslager mellan testramverket och testplattformen. De populära testramverken är MSTest, NUnit, TUnit och xUnit.net.
MSTest
MSTest är Microsofts testramverk för alla .NET-språk. Den är utökningsbar och fungerar med .NET CLI, Visual Studio, Visual Studio Code och Rider. Den stöder både VSTest och Microsoft.Testing.Platform.
Mer information finns i följande resurser:
- Stöd för Microsoft.Testing.Platform i MSTest (MSTest runner)
- Enhetstestning med C#
- Enhetstestning med F#
- Enhetstestning med Visual Basic
NUnit
NUnit är ett ramverk för enhetstestning för alla .NET-språk. Från början portades NUnit från JUnit och den aktuella produktionsversionen har skrivits om med många nya funktioner och stöd för en mängd olika .NET-plattformar. Det är ett projekt av .NET Foundation. Den stöder både VSTest och Microsoft.Testing.Platform.
Mer information finns i följande resurser:
- Stöd för Microsoft.Testing.Platform i NUnit (NUnit runner)
- Enhetstestning med C#
- Enhetstestning med F#
- Enhetstestning med Visual Basic
TUnit
TUnit är helt byggd ovanpå Microsoft.Testing.Platform och stöder inte VSTest. Mer information finns i TUnit-dokumentationen.
xUnit.net
xUnit.net är ett kostnadsfritt, communityfokuserat enhetstestverktyg med öppen källkod för .NET. Den ursprungliga uppfinnaren av NUnit v2 skrev xUnit.net. xUnit.net är den senaste tekniken för enhetstestning av .NET-appar. Det fungerar också med ReSharper, CodeRush och TestDriven.NET. xUnit.net är ett projekt av .NET Foundation och fungerar enligt dess uppförandekod. Den stöder både VSTest och Microsoft.Testing.Platform
Mer information finns i följande resurser:
- Stöd för Microsoft.Testing.Platform i xUnit.net v3
- Enhetstestning med C#
- Enhetstestning med F#
- Enhetstestning med Visual Basic
Köra tester
.NET CLI
Du kan köra enhetstester från alla testprojekt i en lösning med hjälp av kommandot .NET CLI med kommandot dotnet test. .NET CLI exponerar de flesta funktioner som integrerade utvecklingsmiljöer (IDE) göra tillgängliga via användargränssnitt. .NET CLI är plattformsoberoende och kan användas som en del av pipelines för kontinuerlig integrering och leverans. .NET CLI används med skriptade processer för att automatisera vanliga uppgifter.
IDE
Oavsett om du använder Visual Studio, Visual Studio Code eller Rider finns det grafiska användargränssnitt för testningsfunktioner. Det finns fler funktioner tillgängliga för IDE:er än CLI, till exempel Live Unit Testing. Mer information finns i Inkludera och exkludera tester med Visual Studio.
Se även
Mer information finns i följande artiklar: