Aller au contenu principal

2-1 Base de données de test

Lors des tests, nous ferons des entrées, modifications et suppressions dans la base de données.

Certains tests seront des tests unitaires dans lesquels on mock (remplacer par de fausses instances) les dépendances, incluant la BD, mais d'autres seront des tests d'intégration dans lesquels la BD est sollicitée.

On ne veut pas entrer en conflit avec les données de développement déjà présentes, alors on créera une base de données spécifiquement liée à l'environnement de test.

En effet, il est une bonne pratique de séparer nos données de test de celles de développement. De plus, en créant une base de données spécifiques aux tests, on s'assure que tous les développeurs ont le même environnement de test standardisé.

De plus, la base de données de test sera réinitialisée lors de chaque test, assurant qu'elle soit dans un état prévisible.

Créer la base de données

Soit à partir de DataGrip, soit à partir de Rider (sous l'onglet Database):

  1. Sous votre serveur de BD -> clic droit -> New -> Database.
  2. Nommez la base de données avec le suffixe _test. Dans mon cas, j'ai nommé snowfall_test Imgur
info

On utilise test au singulier puisqu'il s'agit de la base de données associée à l'environnement test (tout comme on peut avoir development, production, staging, etc.).

Configuration de l'environnement Test

Dans chaque projet Mvc et Api, un fichier appsettings.development.json est présent et ce dernier contient les configurations nécessaires au bon fonctionnement des projets en mode développement.

Pour utiliser la base de données de test et toute autre configuration qui serait requise en environnement Test, on devra créer de nouveaux fichiers de configuration.

Créer appsettings.Test.json dans le projet Mvc

  1. Via Snowfall.Web.Mvc -> Add -> Configuration Files, créez un fichier appsettings.Test.json à la racine du projet.
  2. Récupérez le contenu du fichier appsettings.Development.json comme base et modifiez la chaine de connexion (ConnectionString) pour celle de votre base de données de test
    Snowfall.Web.Mvc/appsettings.Test.json
    {
    "Logging": {
    "LogLevel": {
    "Default": "Information",
    "Microsoft.AspNetCore": "Warning"
    }
    },
    "ConnectionStrings": {
    "AppDatabaseConnection" : "Server=localhost;Database=snowfall_test;User Id=postgres;Password=admin;Include Error Detail=true;"
    },
    "Stripe": {
    "PublishableKey": "pk_test_",
    "SecretKey": "sk_test_"
    },
    "DossierStorage": "../Storage"
    }

Créer appsettings.Test.json dans le projet Api

  1. Via Snowfall.Web.Api -> Add -> Configuration Files, créez un fichier appsettings.Test.json à la racine du projet.
  2. Récupérez le contenu du fichier appsettings.Development.json comme base et modifiez la chaine de connexion (ConnectionString) pour celle de votre base de données de test
    Snowfall.Web.Mvc/appsettings.Test.json
    {
    "Logging": {
    "LogLevel": {
    "Default": "Information",
    "Microsoft.AspNetCore": "Warning"
    }
    },
    "ConnectionStrings": {
    "AppDatabaseConnection" : "Server=localhost;Database=snowfall_test;User Id=postgres;Password=admin;Include Error Detail=true;"
    },
    "JwtSecurityKey": "7'y&#xmrd,2g<=]k%Q.xLpdYr&J)aD}K",
    "JwtIssuer": "http://localhost",
    "JwtAudience": "http://localhost",
    "JwtExpirationJours": 30
    }