Introduction

Dans ce bref article nous allons voir comment implémenter des tests unitaires pour nous assurer que notre configuration d’injection de dépendance dans ASP.Net Core est correcte.

Nous utiliserons le conteneur d’injection fourni par défaut par le framework qui se trouve sous le namespace Microsoft.Extensions.DependencyInjection.

Pour voir le source code du project, cliquez ici.

Pourquoi tester l’injection de dépendance ?

L’intérêt des tests unitaires et d’intégration en général est d’assurer le bon déroulement de l’exécution, c’est à dire l’état et le comportement correct de notre code en runtime.

Une erreur dans la configuration de l’injection  de dépendance peut passer inaperçue au moment de la compilation mais crasher à l’exécution.

Un changement de signature du constructeur d’un service ou une mauvaise configuration sont deux exemples pouvant entraîner un désastre. Et en bons automates, nous allons naturellement assurer notre survie via des tests unitaires.

Créer et injecter nos services dans le web api

Il faut commencer par créer un nouveau project  .Net Core ASP.Net Core Web Application en ajoutant le code suivant pour les services:

La configuration des dépendances se fait au niveau de la classe Startup en ajoutant cette méthode.

On appelera la méthode au niveau de ConfigureServices comme suivant :

Créer une première version de test unitaire

Pour les tests unitaires, nous allons utiliser xUnit, ainsi que NSubstitute et NFluent respectivement pour le mock et les assertions. Enfin, il faudra ajouter la référence à Microsoft.AspNetCore.App.

On peut alors ajouter une classe de test vide qu’on appelera StartupTest .

Dans la méthode de test Nous commencerons par initialiser nos entrées.

Pouter tester de l’injection de ILogger , il faut vérifier que l’instance crée n’est pas nulle et de type Logger

Ce sera pareil pour IRepository, en ajoutant en vérification de la valeur de IsSimulation

Refactoring de la classe de test

Pour rendre le code plus générique on peut ajouter ce code dans notre classe de test :

Et notre notre vérification ne tiendra plus qu’en deux lignes :

La classe de test finale sera donc la suivante :

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *