Partager via


Générer des tests unitaires avec GitHub Copilot

Dans cet article, vous allez découvrir comment générer des tests unitaires et des projets de test en C# à l’aide de l’infrastructure xUnit à l’aide des commandes Visual Studio et de GitHub Copilot. L’utilisation de Visual Studio en combinaison avec GitHub Copilot simplifie considérablement le processus de génération et d’écriture de tests unitaires.

Créer un projet de test

Imaginez qu’il existe une ProductService classe avec une GetProductById méthode qui dépend des interfaces IProductDataStorage et ICacheClient.

public class ProductService(
    IProductDataStorage productDataStorage,
    ICacheClient cacheClient)
{
    public async Task<Product?> GetProductById(int productId)
    {
        var product = await cacheClient.GetProduct(productId);

        if (product is not null)
        {
            return product;
        }

        product = await productDataStorage.GetProduct(productId);

        if (product is not null)
        {
            await _cacheClient.SetProduct(product);
        }

        return product;
    }
}

Pour générer un projet de test et une méthode stub, procédez comme suit :

  • Sélectionnez la méthode.
  • Cliquez avec le bouton droit et sélectionnez Créer des tests unitaires.

Commande Créer des tests unitaires

Dans la boîte de dialogue Créer des tests unitaires , sélectionnez xUnit dans le menu déroulant Infrastructure de test .

Remarque

La commande Créer des tests unitaires est par défaut dans l’infrastructure MSTest. Toutefois, étant donné que cet exemple utilise xUnit, vous devez installer l’extension Visual Studio xUnit.net.TestGenerator2022.

Fenêtre Créer des tests unitaires

  • Si vous n’avez pas encore de projet de test, choisissez Nouveau projet de test ou sélectionnez-en un existant.
  • Si nécessaire, spécifiez un modèle pour l’espace de noms, la classe et le nom de la méthode, puis cliquez sur OK.

Après quelques secondes, Visual Studio extrait les packages nécessaires et vous obtenez un projet xUnit généré avec les packages et la structure requis, une référence au projet testé, ainsi que la ProductServiceTests classe et une méthode stub.

Méthode stub générée

Générer les tests eux-mêmes

  • Sélectionnez à nouveau la méthode testée.

  • Cliquez avec le bouton droit et sélectionnez Demander à Copilot.

  • Entrez une invite simple, par exemple :

    « Générez des tests unitaires à l’aide de xunit, nsubstitute et insérez le résultat dans #ProductServiceTests fichier. »

    Vous devez sélectionner votre classe de test lorsque vous tapez le # caractère.

Conseil / Astuce

Pour une recherche rapide, il est souhaitable d’ouvrir ProductServiceTests dans un onglet distinct.

Demander la génération de tests

Exécutez l’invite, cliquez sur Accepter et Copilot génère le code de test. Après cela, il reste à installer les packages nécessaires.

Lorsque les packages sont installés, les tests peuvent être exécutés. Cet exemple a travaillé sur la première tentative : Copilot sait comment utiliser NSubstitute, et toutes les dépendances ont été définies par le biais d’interfaces.

Tests générés