Delen via


Eenheidstests genereren met GitHub Copilot

In dit artikel leert u hoe u eenheidstests en testprojecten in C# genereert met behulp van het xUnit-framework met behulp van Visual Studio-opdrachten en GitHub Copilot. Het gebruik van Visual Studio in combinatie met GitHub Copilot vereenvoudigt het proces van het genereren en schrijven van eenheidstests aanzienlijk.

Een testproject maken

Stel dat er een ProductService klasse is met een GetProductById methode die afhankelijk is van de IProductDataStorage en ICacheClient interfaces.

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;
    }
}

Voer de volgende stappen uit om een testproject en een stub-methode te genereren:

  • Selecteer de methode.
  • Klik met de rechtermuisknop en selecteer Eenheidstests maken.

Commando Eenheidstests Maken

Selecteer in het dialoogvenster Eenheidstests makenxUnit in de vervolgkeuzelijst Test Framework .

Opmerking

De opdracht Moduletests maken is standaard ingesteld op het MSTest-framework. Omdat in dit voorbeeld echter xUnit wordt gebruikt, moet u de Visual Studio-extensie xUnit.net.TestGenerator2022 installeren.

Unittests maken venster

  • Als u nog geen testproject hebt, kiest u Nieuw testproject of selecteert u een bestaand testproject.
  • Geef indien nodig een sjabloon op voor de naamruimte, klasse en methodenaam en klik op OK.

Na enkele seconden haalt Visual Studio de benodigde pakketten op en krijgt u een gegenereerd xUnit-project met de vereiste pakketten en structuur, een verwijzing naar het geteste project en de ProductServiceTests klasse en een stub-methode.

Gegenereerde stub-methode

De tests zelf genereren

  • Selecteer de methode die opnieuw wordt getest.

  • Klik met de rechtermuisknop en selecteer Copilot vragen.

  • Voer een eenvoudige prompt in, zoals:

    "Eenheidstests genereren met behulp van xunit, nsubstitute en het resultaat invoegen in #ProductServiceTests bestand."

    U moet uw testklasse selecteren wanneer u het # teken typt.

Hint

Voor snelle zoekopdrachten is het wenselijk dat het ProductServiceTests geopend is op een afzonderlijk tabblad.

Prompt om tests te genereren

Voer de prompt uit, klik op Accepteren en Copilot genereert de testcode. Daarna blijft het om de benodigde pakketten te installeren.

Wanneer de pakketten zijn geïnstalleerd, kunnen de tests worden uitgevoerd. Dit voorbeeld was succesvol op de eerste poging: Copilot weet hoe met NSubstitute te werken en alle afhankelijkheden zijn via interfaces gedefinieerd.

Gegenereerde tests