Testen in .NET
In dit artikel wordt het concept van testen geïntroduceerd en wordt uitgelegd hoe verschillende soorten tests kunnen worden gebruikt om code te valideren. Er zijn verschillende hulpprogramma's beschikbaar voor het testen van .NET-toepassingen, zoals de .NET CLI- of IDE's (Integrated Development Environments).
Testtypen
Geautomatiseerde tests zijn een uitstekende manier om ervoor te zorgen dat de toepassingscode doet wat de auteurs willen. In dit artikel worden eenheidstests, integratietests en belastingstests behandeld.
Eenheidstests
Een eenheidstest is een test die afzonderlijke softwareonderdelen of -methoden uitvoert, ook wel een 'werkeenheid' genoemd. Eenheidstests mogen alleen code testen binnen het besturingselement van de ontwikkelaar. Ze testen geen problemen met infrastructuur. Infrastructuurproblemen omvatten interactie met databases, bestandssystemen en netwerkbronnen.
Zie Testhulpprogramma'svoor meer informatie over het maken van eenheidstests.
Integratietests
Een integratietest verschilt van een eenheidstest omdat twee of meer softwareonderdelen de mogelijkheid hebben om samen te werken, ook wel 'integratie' genoemd. Deze tests worden uitgevoerd op een breder spectrum van het systeem dat wordt getest, terwijl eenheidstests zich richten op afzonderlijke onderdelen. Integratietests omvatten vaak problemen met infrastructuur.
Loadtesten
Een belastingstest wil bepalen of een systeem een opgegeven belasting kan verwerken. Bijvoorbeeld het aantal gelijktijdige gebruikers dat een toepassing gebruikt en de mogelijkheid van de app om interacties responsief te verwerken. Zie ASP.NET Core load/stress testingvoor meer informatie over belastingstests van webtoepassingen.
Testoverwegingen
Houd er rekening mee dat er beste werkwijzen zijn voor het schrijven van tests. Bijvoorbeeld Test Driven Development (TDD) is wanneer je eerst een unit test schrijft voordat de code wordt geschreven die daarmee moet worden gecontroleerd. TDD lijkt op het maken van een overzicht voor een boek voordat u het schrijft. Met de eenheidstest kunnen ontwikkelaars eenvoudigere, leesbare en efficiënte code schrijven.
Testhulpmiddelen
Bij het uitvoeren van tests in .NET zijn er twee onderdelen betrokken: het testplatform en het testframework.
Testplatforms
Het testplatform is de engine die de tests uitvoert en fungeert als een communicatiekanaal met IDE's. Visual Studio kan bijvoorbeeld een detectieaanvraag verzenden naar het testplatform, zodat de beschikbare tests in Test Explorer kunnen worden weergegeven. Het testplatform reageert terug op de IDE met de gevonden tests. Vergelijkbare communicatie vindt plaats voor testuitvoering.
VSTest is al vele jaren gebruikt in .NET en was het enige testplatform in het ecosysteem. Begin 2024 werd de eerste stabiele versie van een nieuw testplatform, genaamd Microsoft.Testing.Platform (MTP), uitgebracht.
Frameworks testen
Het testframework is gebouwd op het testplatform. Hiermee definieert u de set kenmerken en API's die voor u beschikbaar zijn, als testauteur. Het wordt meestal aangedreven door een testadapter, die fungeert als een communicatielaag tussen het testframework en het testplatform. De populaire testframeworks zijn MSTest, NUnit, TUnit en xUnit.net.
MSTest
MSTest is het Microsoft-testframework voor alle .NET-talen. Het is uitbreidbaar en werkt met .NET CLI, Visual Studio, Visual Studio Code en Rider. Het ondersteunt zowel VSTest als Microsoft.Testing.Platform.
Zie de volgende bronnen voor meer informatie:
- ondersteuning voor Microsoft.Testing.Platform in MSTest (MSTest runner)
- Unittesten met C#
- Unit testen met F#
- eenheidstests met Visual Basic-
NUnit
NUnit is een framework voor eenheidstests voor alle .NET-talen. In eerste instantie werd NUnit overgezet vanuit JUnit en is de huidige productierelease herschreven met veel nieuwe functies en ondersteuning voor een breed scala aan .NET-platforms. Het is een project van de .NET Foundation. Het ondersteunt zowel VSTest als Microsoft.Testing.Platform.
Zie de volgende bronnen voor meer informatie:
- Microsoft.Testing.Platform-ondersteuning in NUnit (NUnit runner)
- eenheidstests met C#-
- Unit-testen met F#
- eenheidstests met Visual Basic-
TUnit
TUnit is volledig gebouwd op Microsoft.Testing.Platform en biedt geen ondersteuning voor VSTest. Raadpleeg de documentatie van TUnit voor meer informatie.
xUnit.net
xUnit.net is een gratis, opensource- en communitygericht hulpprogramma voor eenheidstests voor .NET. De oorspronkelijke uitvinder van NUnit v2 schreef xUnit.net. xUnit.net is de nieuwste technologie voor het testen van .NET-apps voor eenheden. Het werkt ook met ReSharper, CodeRush en TestDriven.NET. xUnit.net is een project van de .NET Foundation en werkt onder haar gedragscode. Het ondersteunt zowel VSTest als Microsoft.Testing.Platform
Zie de volgende bronnen voor meer informatie:
- Microsoft.Testing.Platform-ondersteuning in xUnit.net v3
- eenheidstests met C#-
- Unittesten met F#
- eenheidstests met Visual Basic-
Tests uitvoeren
.NET CLI
U kunt eenheidstests uitvoeren vanuit alle testprojecten in een oplossing met behulp van de .NET CLI- met de dotnet-testopdracht. De .NET CLI maakt de meeste functionaliteit beschikbaar die IDE's (Integrated Development Environments) beschikbaar maken via gebruikersinterfaces. De .NET CLI is platformoverschrijdend en beschikbaar voor gebruik als onderdeel van continue integratie- en leveringspijplijnen. De .NET CLI wordt gebruikt met scriptprocessen om algemene taken te automatiseren.
IDE
Of u Nu Visual Studio, Visual Studio Code of Rider gebruikt, er zijn grafische gebruikersinterfaces voor het testen van functionaliteit. Er zijn meer functies beschikbaar voor IDE's dan voor de CLI, bijvoorbeeld Live Unit Testing. Zie Inclusief en uitsluiten van tests met Visual Studiovoor meer informatie.
Zie ook
Zie de volgende artikelen voor meer informatie: