Tests unitaires dans .NET Core et .NET StandardUnit testing in .NET Core and .NET Standard

.NET Core permet de créer facilement des tests unitaires..NET Core makes it easy to create unit tests. Cet article présente les tests unitaires et explique ce qui les distingue des autres types de test.This article introduces unit tests and illustrates how they differ from other kinds of tests. Les ressources connexes au bas de la page vous montrent comment ajouter un projet de test à votre solution.The linked resources near the bottom of the page show you how to add a test project to your solution. Après avoir configuré votre projet de test, vous pouvez exécuter vos tests unitaires à l’aide de la ligne de commande ou de Visual Studio.After you set up your test project, you will be able to run your unit tests using the command line or Visual Studio.

Si vous testez un projet de ASP.net Core , consultez tests d’intégration dans ASP.net Core.If you're testing an ASP.NET Core project, see Integration tests in ASP.NET Core.

.NET Core 2.0 et ultérieur prend en charge .NET Standard 2.0 et nous allons utiliser ses bibliothèques pour illustrer les tests unitaires..NET Core 2.0 and later supports .NET Standard 2.0, and we will use its libraries to demonstrate unit tests.

Vous pouvez utiliser des modèles de projet de test unitaire .NET Core 2.0 et ultérieur intégrés pour C#, F# et Visual Basic comme point de départ de votre projet personnel.You are able to use built-in .NET Core 2.0 and later unit test project templates for C#, F# and Visual Basic as a starting point for your personal project.

Que sont les tests unitaires ?What are unit tests?

L’utilisation de tests automatisés est un très bon moyen de vérifier qu’une application logicielle se comporte comme ses auteurs l’avaient prévu.Having automated tests is a great way to ensure a software application does what its authors intend it to do. Il existe plusieurs types de tests pour les applications logicielles.There are multiple types of tests for software applications. Citons par exemple les tests d’intégration, les tests web, les tests de charge, etc.These include integration tests, web tests, load tests, and others. Les tests unitaires testent les méthodes et les composants logiciels individuels.Unit tests test individual software components and methods. Les tests unitaires doivent uniquement tester le code sous le contrôle du développeur.Unit tests should only test code within the developer’s control. Ils ne doivent pas tester les problèmes d’infrastructure.They should not test infrastructure concerns. Les problèmes d’infrastructure comprennent les bases de données, les systèmes de fichiers et les ressources réseau.Infrastructure concerns include databases, file systems, and network resources.

Par ailleurs, n’oubliez pas qu’il existe des bonnes pratiques pour écrire des tests.Also, keep in mind there are best practices for writing tests. Par exemple, le développement piloté par les tests (TDD) est lorsqu’un test unitaire est écrit avant le code qu’il est destiné à vérifier.For example, Test Driven Development (TDD) is when a unit test is written before the code it is meant to check. Le développement TDD est comme créer le plan d’un livre avant de l’écrire.TDD is like creating an outline for a book before we 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.

Notes

L’équipe ASP.NET suit ces conventions pour aider les développeurs à trouver des noms qui conviennent pour les méthodes et les classes de test.The ASP.NET team follows these conventions to help developers come up with good names for test classes and methods.

Essayez de ne pas introduire de dépendances à l’infrastructure quand vous écrivez des tests unitaires.Try not to introduce dependencies on infrastructure when writing unit tests. Elles rendent les tests lents et fragiles et doivent être réservées aux tests d’intégration.These make the tests slow and brittle, and should be reserved for integration tests. Vous pouvez éviter ces dépendances dans votre application en suivant le principe des dépendances explicites et en utilisant l’injection de dépendances.You can avoid these dependencies in your application by following the Explicit Dependencies Principle and using Dependency Injection. Vous pouvez également conserver vos tests unitaires dans un projet distinct de vos tests d’intégration.You can also keep your unit tests in a separate project from your integration tests. Ainsi, vous avez la garantie que votre projet de test unitaire n’a pas de références ou de dépendances aux packages de l’infrastructure.This ensures your unit test project doesn’t have references to or dependencies on infrastructure packages.

Étapes suivantes :Next steps

Pour en savoir plus sur les tests unitaires dans les projets .NET Core :More information on unit testing in .NET Core projects:

Les projets de test unitaire .NET Core sont pris en charge pour :.NET Core unit test projects are supported for:

Vous pouvez également choisir entre :You can also choose between:

Vous pouvez en savoir plus dans les procédures suivantes :You can learn more in the following walkthroughs:

Vous pouvez en savoir plus dans les articles suivants :You can learn more in the following articles: