.net Core Unit Test Appsettings.json

5 min read Jun 03, 2024
.net Core Unit Test Appsettings.json

Tester vos paramètres d'application .NET Core avec des tests unitaires

L'utilisation de appsettings.json dans les applications .NET Core permet de gérer les paramètres de configuration de manière centralisée et flexible. Cependant, il est important de tester ces paramètres pour garantir que votre application fonctionne correctement dans différentes configurations. Cet article vous guidera sur la façon de tester vos appsettings.json avec des tests unitaires.

Pourquoi tester les appsettings.json ?

Tester vos appsettings.json est crucial pour plusieurs raisons:

  • Validation des valeurs par défaut: Assurez-vous que les valeurs par défaut dans vos fichiers appsettings.json sont correctes et fonctionnent comme prévu.
  • Gestion de plusieurs environnements: Vérifiez que les paramètres de configuration s'adaptent correctement aux différents environnements (développement, test, production).
  • Gestion des dépendances: Assurez-vous que les valeurs des paramètres de configuration sont utilisées correctement par les autres dépendances de votre application.

Mise en place des tests unitaires

Pour tester vos appsettings.json avec des tests unitaires, vous pouvez utiliser la librairie Microsoft.Extensions.Configuration de .NET Core.

Configuration du test

Commencez par créer un projet de test unitaire dans votre solution .NET Core. Ensuite, ajoutez la librairie Microsoft.Extensions.Configuration comme dépendance à votre projet de test:


Création de la configuration de test

Dans votre classe de test, vous pouvez construire une configuration à partir de fichiers appsettings.json :

[TestClass]
public class ConfigurationTests
{
    private IConfiguration _configuration;

    [TestInitialize]
    public void Initialize()
    {
        var builder = new ConfigurationBuilder()
            .SetBasePath(Directory.GetCurrentDirectory())
            .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);
        _configuration = builder.Build();
    }

    [TestMethod]
    public void TestAppSettings()
    {
        // Accédez aux valeurs de la configuration
        var mySetting = _configuration.GetValue("MySetting");
        Assert.AreEqual("valeur de test", mySetting);
    }
}

Dans cet exemple, nous créons un ConfigurationBuilder qui charge le fichier appsettings.json à partir du répertoire courant. Ensuite, nous pouvons accéder aux valeurs de la configuration à l'aide de la méthode GetValue<T>() de l'interface IConfiguration.

Test de différents environnements

Pour tester la configuration en fonction de l'environnement, vous pouvez ajouter des fichiers appsettings.{environnement}.json spécifiques à chaque environnement (par exemple, appsettings.Development.json, appsettings.Test.json, appsettings.Production.json).

[TestMethod]
public void TestEnvironmentSpecificSettings()
{
    // Charger la configuration pour l'environnement Development
    var builder = new ConfigurationBuilder()
        .SetBasePath(Directory.GetCurrentDirectory())
        .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
        .AddJsonFile($"appsettings.{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT")}.json", optional: true, reloadOnChange: true);
    var configuration = builder.Build();

    // Accéder aux valeurs de la configuration spécifique à l'environnement Development
    var myDevelopmentSetting = configuration.GetValue("MyDevelopmentSetting");
    Assert.AreEqual("valeur de développement", myDevelopmentSetting);
}

Dans cet exemple, nous chargeons les fichiers appsettings.json et appsettings.Development.json et accédons à la valeur de MyDevelopmentSetting spécifique à l'environnement Development.

En conclusion

Tester vos appsettings.json est une pratique essentielle pour garantir la stabilité et la fiabilité de vos applications .NET Core. En utilisant des tests unitaires, vous pouvez valider les valeurs par défaut, gérer les différents environnements et vous assurer que vos paramètres de configuration sont utilisés correctement.