Configurer Verify pour les Tests d'Approbation en C#: Guide Étape par Étape

Bienvenue de nouveau, chers développeurs ! Après avoir introduit le monde transformateur des tests d'approbation avec Verify et parcouru la configuration initiale dans vos projets C#, il est temps de monter en compétence. Aujourd'hui, nous allons explorer comment configurer Verify dans vos projets C# et créer vos premiers tests d'approbation. Démystifions le processus et découvrons comment intégrer Verify de manière transparente dans votre flux de travail, rendant votre transition vers les tests d'approbation non seulement facile mais également agréable.

Mettre les Voiles : Installation de Verify

Tout d'abord, pour embarquer dans cette aventure, vous devez intégrer Verify à votre projet. N'ayez crainte, car ce n'est pas une tâche herculéenne. Si vous êtes familier avec le gestionnaire de paquets NuGet, vous avez déjà fait la moitié du chemin. Ouvrez simplement votre projet dans Visual Studio, accédez au gestionnaire de paquets NuGet (soit via la console, soit via l'interface graphique), et exécutez la commande suivante :

Install-Package Verify.Xunit

Note : Nous utilisons Verify.Xunit dans cet exemple car nous apprécions xUnit, mais si vous préférez NUnit ou MSTest, Verify offre également des paquets dédiés pour ces frameworks.

Première Rencontre : Création de Votre Premier Test

Avec Verify installé, il est temps de créer votre premier test d'approbation. La beauté de Verify réside dans sa simplicité. Supposons que nous ayons une fonction qui génère un rapport sous forme de chaîne de caractères. Notre objectif est de nous assurer que ce rapport est généré correctement, capturant tous les détails prévus.

Voici un exemple simple pour commencer :

[Fact]
public async Task TestDeGenerationDeRapport()
{
    var generateurDeRapport = new GenerateurDeRapport();
    var rapport = generateurDeRapport.GenererRapport();
    
    await Verify(rapport);
}

Dans ce fragment de code, GenerateurDeRapport est notre classe hypothétique avec une méthode GenererRapport qui retourne le rapport sous forme de chaîne de caractères. La magie opère avec await Verify(rapport); – cette ligne instruit Verify de capturer la sortie de notre rapport.

Sous le Capot : Que Se Passe-t-il Ensuite ?

Lorsque vous exécutez ce test pour la première fois, Verify fait quelque chose de plutôt astucieux. Puisqu'il n'y a pas de sortie approuvée à comparer, il génère un fichier .received. contenant la sortie de la méthode GenererRapport. Verify attend ensuite votre approbation pour faire de ce résultat la norme dorée. Vous approuvez la sortie en renommant simplement le fichier .received. en fichier .approved., manuellement ou à l'aide d'outils intégrés tels que les outils de différence.

Dès lors, chaque fois que vous exécutez le test, Verify compare le rapport nouvellement généré à la version approuvée. Toute divergence, et le test échouera, mettant en évidence précisément ce qui a changé. Cela permet non seulement de détecter les changements non intentionnels mais offre également un aperçu clair et contextuel de comment et de quoi a évolué dans votre sortie.

Bien que nous ayons commencé avec un exemple simple de chaîne, la compétence de Verify s'étend bien au-delà. Avec sa capacité à gérer des objets complexes, des fichiers, et même des images, votre horizon de tests est aussi vaste que la mer. Que vous testiez des réponses API, des états de base de données, ou des captures d'interface utilisateur, Verify peut tout gérer, transformant la tâche ardue d'écrire et de maintenir une multitude d'assertions en un processus.