Test dans .NETTesting in .NET

Cet article présente le concept de test et illustre la manière dont différents genres de tests peuvent être utilisés pour valider le code.This article introduces the concept of testing, and illustrates how different kinds of tests can be used to validate code. Plusieurs outils sont disponibles pour tester des applications .NET, telles que l' interface de commande CLI .net ou les environnements de développement intégré (IDE).There are various tools available for testing .NET applications, such as the .NET CLI or Integrated Development Environments (IDEs).

Types de testTest types

Le fait de disposer de tests automatisés est un excellent moyen de s’assurer que le code d’application fait ce que les auteurs l’envisagent de faire.Having automated tests is a great way to ensure that application code does what its authors intend it to do. Cet article couvre les tests unitaires, les tests d’intégration et les tests de charge.This article covers unit tests, integration tests, and load tests.

Tests unitairesUnit tests

Un test unitaire est un test qui exerce des composants logiciels individuels ou des méthodes, également appelées « unités de travail ».A unit test is a test that exercises individual software components or methods, also known as "unit of work". Les tests unitaires doivent uniquement tester le code dans le contrôle du développeur.Unit tests should only test code within the developer's control. Ils ne testent pas les problèmes d’infrastructure.They do not test infrastructure concerns. Les problèmes d’infrastructure incluent l’interaction avec les bases de données, les systèmes de fichiers et les ressources réseau.Infrastructure concerns include interacting with databases, file systems, and network resources.

Pour plus d’informations sur la création de tests unitaires, consultez outils de test.For more information on creating unit tests, see Testing tools.

Tests d’intégrationIntegration tests

Un test d’intégration diffère d’un test unitaire dans la mesure où il exerce deux ou plusieurs composants logiciels pour fonctionner ensemble, également appelé « intégration ».An integration test differs from a unit test in that it exercises two or more software components' ability to function together, also known as their "integration." Ces tests fonctionnent sur un spectre plus large du système testé, tandis que les tests unitaires se concentrent sur des composants individuels.These tests operate on a broader spectrum of the system under test, whereas unit tests focus on individual components. Souvent, les tests d’intégration incluent des problèmes d’infrastructure.Often, integration tests do include infrastructure concerns.

Tests de chargeLoad tests

Un test de charge a pour but de déterminer si un système peut gérer une charge spécifiée, par exemple, le nombre d’utilisateurs simultanés utilisant une application et la capacité de l’application à gérer les interactions de façon réactive.A load test aims to determine whether or not a system can handle a specified load, for example, the number of concurrent users using an application and the app's ability to handle interactions responsively. Pour plus d’informations sur le test de charge des applications Web, consultez ASP.net core le test de charge ou de stress.For more information on load testing of web applications, see ASP.NET Core load/stress testing.

Considérations relatives aux testsTest considerations

Gardez à l’esprit qu’il existe des pratiques recommandées pour l’écriture des tests.Keep in mind there are best practices for writing tests. Par exemple, le développement piloté par les tests (TDD) est le moment où un test unitaire est écrit avant le code qu’il doit vérifier.For example, Test Driven Development (TDD) is when a unit test is written before the code it's meant to check. TDD est semblable à la création d’un plan pour un livre avant de l’écrire.TDD is like creating an outline for a book before you write it. Il est conçu pour aider les développeurs à écrire du code plus simple, plus lisible et plus efficace.It is meant to help developers write simpler, more readable, and efficient code.

Outils de testTesting tools

.Net est une plateforme de développement multilingue, et vous pouvez écrire différents types de test pour C#, F #et Visual Basic..NET is a multi-language development platform, and you can write various test types for C#, F#, and Visual Basic. Pour chacune de ces langues, vous pouvez choisir entre plusieurs infrastructures de test.For each of these languages, you can choose between several test frameworks.

xUnitxUnit

xUnit est un outil de test d’unités libre, open source et axé sur la communauté pour .net.xUnit is a free, open source, community-focused unit testing tool for .NET. Écrit par l’inventeur d’origine de NUnit v2, xUnit.net est la technologie la plus récente pour le test unitaire des applications .NET.Written by the original inventor of NUnit v2, xUnit.net is the latest technology for unit testing .NET apps. xUnit.net fonctionne avec resharper, CodeRush, TestDriven.NET et Xamarin.xUnit.net works with ReSharper, CodeRush, TestDriven.NET, and Xamarin. Il s’agit d’un projet de .net Foundation qui fonctionne dans le cadre de son code de réalisation.It is a project of the .NET Foundation and operates under their code of conduct.

Pour plus d’informations, consultez les ressources suivantes :For more information, see the following resources:

NUnitNUnit

Nunit est une infrastructure de tests unitaires pour tous les langages .net.NUnit is a unit-testing framework for all .NET languages. Initialement porté à partir de JUnit, la version de production actuelle a été réécrite avec de nombreuses nouvelles fonctionnalités et la prise en charge d’une large gamme de plateformes .NET.Initially ported from JUnit, the current production release has been rewritten with many new features and support for a wide range of .NET platforms. Il s’agit d’un projet de .net Foundation.It is a project of the .NET Foundation.

Pour plus d’informations, consultez les ressources suivantes :For more information, see the following resources:

MSTestMSTest

MSTest est l’infrastructure de test Microsoft pour tous les langages .net.MSTest is the Microsoft test framework for all .NET languages. Il est extensible et fonctionne avec la CLI .NET et Visual Studio.It's extensible and works with both .NET CLI and Visual Studio. Pour plus d’informations, consultez les ressources suivantes :For more information, see the following resources:

CLI .NET.NET CLI

Vous pouvez exécuter des tests unitaires de solutions à partir de l' interface CLI .net, à l’aide de la commande dotnet test .You can run a solutions unit tests from the .NET CLI, with the dotnet test command. L’interface CLI .NET expose une majorité des fonctionnalités que les environnements de développement intégré (IDE) mettent à disposition via les interfaces utilisateur.The .NET CLI exposes a majority of the functionality that Integrated Development Environments (IDEs) make available through user interfaces. L’interface CLI .NET est multiplateforme et peut être utilisée dans le cadre des pipelines d’intégration et de livraison continus.The .NET CLI is cross-platform and available to use as part of continuous integration and delivery pipelines. L’interface CLI .NET est utilisée avec les processus scriptés pour automatiser les tâches courantes.The .NET CLI is used with scripted processes to automate common tasks.

IDEIDE

Que vous utilisiez Visual Studio, Visual Studio pour Mac ou Visual Studio Code, il existe des interfaces utilisateur graphiques pour la fonctionnalité de test.Whether you're using Visual Studio, Visual Studio for Mac, or Visual Studio Code, there are graphical user interfaces for testing functionality. D’autres fonctionnalités sont disponibles pour les IDE que l’interface CLI, par exemple Live Unit testing.There are more features available to IDEs than the CLI, for example Live Unit Testing. Pour plus d’informations, consultez inclure et exclure des tests avec Visual Studio.For more information, see Including and excluding tests with Visual Studio.

Voir aussiSee also

Pour plus d’informations, consultez les articles suivants :For more information, see the following articles: