Share via


Toegang tot bronnen in .NET.NET Aspire tests

In dit artikel leert u hoe u toegang krijgt tot de resources van de .NET.NET Aspire app-host in uw tests. De app-host vertegenwoordigt de volledige toepassingsomgeving en bevat alle resources die beschikbaar zijn voor de toepassing. Wanneer u functionele tests of integratietests schrijft met .NET.NET Aspire, moet u mogelijk toegang krijgen tot deze resources om het gedrag van uw toepassing te controleren.

Toegang tot HTTP-resources

Als u toegang wilt krijgen tot een HTTP-resource, gebruikt u de HttpClient om antwoorden aan te vragen en te ontvangen. De DistributedApplication en de DistributedApplicationFactory beide bieden een CreateHttpClient methode die wordt gebruikt voor het maken van een HttpClient exemplaar voor een specifieke resource, op basis van de resourcenaam van de app-host. Deze methode gebruikt ook een optionele endpointName parameter, dus als de resource meerdere eindpunten heeft, kunt u opgeven welke moet worden gebruikt.

Toegang tot andere middelen

In een test wilt u mogelijk toegang krijgen tot andere resources door de verbindingsgegevens die ze opgeven, bijvoorbeeld door een database te doorzoeken om de status van de gegevens te controleren. Hiervoor gebruikt u de ConfigurationExtensions.GetConnectionString methode om de verbindingsreeks voor een resource op te halen en vervolgens op te geven aan een clientbibliotheek binnen de test om met de resource te communiceren.

Controleren of resources beschikbaar zijn

Vanaf .NET.NET Aspire 9 is er ondersteuning voor het wachten tot afhankelijke bronnen beschikbaar zijn (via het statuscontrole mechanisme). Dit is handig in tests die ervoor zorgen dat een resource beschikbaar is voordat u deze probeert te openen. De ResourceNotificationService-klasse biedt een ResourceNotificationService.WaitForResourceAsync methode die wordt gebruikt om te wachten tot een benoemde resource beschikbaar is. Deze methode gebruikt de resourcenaam en de gewenste status van de resource als parameters en retourneert een Task die retourneert wanneer de resource beschikbaar is.

Notitie

Het is raadzaam om een time-out op te geven bij het wachten op resources, om te voorkomen dat de test voor onbepaalde tijd blijft hangen in situaties waarin een resource nooit beschikbaar komt.

await resourceNotificationService.WaitForResourceAsync(
        "webfrontend",  
        KnownResourceStates.Running  
    )  
    .WaitAsync(TimeSpan.FromSeconds(30));  

Dit patroon voor resourcemeldingen zorgt ervoor dat de resources beschikbaar zijn voordat de tests worden uitgevoerd, waardoor potentiƫle problemen met de tests worden voorkomen omdat de resources niet gereed zijn.

Zie ook