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
):
- Sous votre serveur de BD ->
clic droit
->New
->Database
. - Nommez la base de données avec le suffixe
_test
. Dans mon cas, j'ai nommésnowfall_test
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
- Via
Snowfall.Web.Mvc
->Add
->Configuration Files
, créez un fichierappsettings.Test.json
à la racine du projet. - 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 testSnowfall.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
- Via
Snowfall.Web.Api
->Add
->Configuration Files
, créez un fichierappsettings.Test.json
à la racine du projet. - 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 testSnowfall.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
}