Testen in .NET

In diesem Artikel wird das Konzept des Testens vorgestellt, und es wird gezeigt, wie verschiedene Arten von Tests zum Überprüfen von Code verwendet werden können. Zum Testen von .NET-Anwendungen stehen verschiedene Tools zur Verfügung, z. B. die .NET-CLI und IDEs (integrierte Entwicklungsumgebungen).

Testtypen

Automatisierte Tests sind ideal, um sicherzustellen, dass Anwendungscode so funktioniert, wie es von den Programmierern beabsichtigt war. In diesem Artikel werden Komponententests, Integrationstests und Auslastungstests behandelt.

Komponententests

Bei einem Komponententest handelt es sich um einen Test, der einzelne Softwarekomponenten oder Methoden, auch als „Arbeitseinheit“ bezeichnet, ausgeführt werden. Komponententests sollten nur Code testen, für den der Entwickler zuständig ist. Es werden keine Aspekte der Infrastruktur getestet. Ein Beispiel für einen Aspekt der Infrastruktur ist etwa die Interaktion mit Datenbanken, Dateisystemen und Netzwerkressourcen.

Weitere Informationen zum Erstellen von Komponententests finden Sie unter Testtools.

Integrationstests

Ein Integrationstest unterscheidet sich von einem Komponententest dadurch, dass er die Funktionsfähigkeit von zwei oder mehr Softwarekomponenten trainiert, die auch als "Integration" bezeichnet werden. Diese Tests werden auf einem größeren Spektrum des zu testden Systems durchgeführt, während Komponententests sich auf einzelne Komponenten konzentrieren. Häufig werden bei Integrationstests auch Aspekte der Infrastruktur berücksichtigt.

Auslastungstests

Bei einem Auslastungstest wird ermittelt, ob ein System eine bestimmte Auslastung verarbeiten kann, z. B. eine bestimmte Anzahl gleichzeitiger Benutzer, die eine Anwendung verwenden, und eine verzögerungsfreie Verarbeitung von Interaktionen. Weitere Informationen zu Auslastungstests für Webanwendungen finden Sie unter Auslastungs-/Belastungstests in ASP.NET Core.

Überlegungen zu Tests

Beachten Sie die bewährten Methoden für das Schreiben von Tests. Beispielsweise wird bei der testgesteuerten Entwicklung (Test Driven Development, TDD) ein Komponententest vor dem Code geschrieben, der damit getestet werden soll. Stellen Sie sich die TDD wie eine Gliederung für ein Buch vor, bevor es geschrieben wird. Dadurch sollen Entwickler einfacheren, lesbareren und effizienteren Code schreiben können.

Testtools

.NET ist eine mehrsprachige Entwicklungsplattform, und Sie können verschiedene Testtypen für C#, F# und Visual Basic schreiben. Für jede dieser Sprachen können Sie aus mehreren Testframeworks wählen.

xUnit

xUnit ist ein kostenloses Open-Source-Tool für Komponententests für .NET mit Unterstützung durch die Community. xUnit.net wurde vom ursprünglichen Erfinder von NUnit v2 geschrieben und stellt die neueste Technologie für Komponententests für .NET-Apps dar. xUnit.net kann mit ReSharper, CodeRush, TestDriven.NET und Xamarin verwendet werden. Es handelt sich dabei um ein Projekt der .NET Foundation, das deren Verhaltensregeln folgt.

Weitere Informationen finden Sie in den folgenden Ressourcen:

NUnit

NUnit ist ein Komponententest-Framework für alle .NET-Sprachen. Ausgangspunkt war eine Portierung von JUnit. Die aktuelle Produktionsversion wurde neu programmiert und um viele neue Features und Unterstützung für eine Vielzahl von .NET-Plattformen erweitert. NUnit ist ein Projekt der .NET Foundation.

Weitere Informationen finden Sie in den folgenden Ressourcen:

MSTest

MSTest ist das Microsoft-Testframework für alle .NET-Sprachen. Es ist erweiterbar und funktioniert sowohl mit der .NET-CLI als auch mit Visual Studio. Weitere Informationen finden Sie in den folgenden Ressourcen:

.NET CLI

Mit dem Befehl dotnet test in der .NET-CLI können Sie Komponententests für Lösungen ausführen. Die .NET-CLI macht die meisten Funktionen verfügbar, die in integrierten Entwicklungsumgebungen (IDEs) über die Benutzeroberfläche verfügbar sind. Die .NET-CLI ist plattformübergreifend und kann im Rahmen von Continuous Integration- und Continuous Delivery-Pipelines verwendet werden. Die .NET-CLI unterstützt skriptgesteuerte Prozesse, um häufige Aufgaben zu automatisieren.

IDE

Visual Studio, Visual Studio für Mac und Visual Studio Code bieten grafische Benutzeroberflächen für Testfunktionen. In den IDEs stehen mehr Funktionen als bei der CLI zur Verfügung, z. B. Live Unit Testing. Weitere Informationen finden Sie unter Einschließen und Ausschließen von Testprojekten und Testmethoden.

Weitere Informationen:

Weitere Informationen finden Sie in den folgenden Artikeln: