Få åtkomst till resurser i .NET.NET Aspire tester
I den här artikeln får du lära dig hur du kommer åt resurserna från appvärden .NET.NET Aspire i dina tester. Appvärden representerar den fullständiga programmiljön och innehåller alla resurser som är tillgängliga för programmet. När du skriver funktions- eller integreringstester med .NET.NET Aspirekan du behöva komma åt dessa resurser för att verifiera programmets beteende.
Få åtkomst till HTTP-resurser
Om du vill komma åt en HTTP-resurs använder du HttpClient för att begära och ta emot svar. Både DistributedApplication och DistributedApplicationFactory tillhandahåller en CreateHttpClient
metod som används för att skapa en HttpClient
instans för en specifik resurs, baserat på resursnamnet från appvärden. Den här metoden tar också en valfri endpointName
parameter, så om resursen har flera slutpunkter kan du ange vilken som ska användas.
Få åtkomst till andra resurser
I ett test kanske du vill komma åt andra resurser med hjälp av den anslutningsinformation som de tillhandahåller, till exempel genom att fråga en databas för att verifiera datatillståndet. För detta använder du metoden ConfigurationExtensions.GetConnectionString för att hämta anslutningssträngen för en resurs och anger sedan den till ett client-bibliotek i testet för att interagera med resursen.
Se till att resurser är tillgängliga
Från och med .NET.NET Aspire 9 finns det stöd för att vänta på att beroende resurser ska vara tillgängliga (via hälsokontroll mekanism). Detta är användbart i tester som säkerställer att en resurs är tillgänglig innan du försöker komma åt den. Klassen ResourceNotificationService innehåller en ResourceNotificationService.WaitForResourceAsync metod som används för att vänta tills en namngiven resurs är tillgänglig. Den här metoden tar resursnamnet och det önskade tillståndet för resursen som parametrar och returnerar en Task
som returnerar när resursen är tillgänglig.
Not
Vi rekommenderar att du anger en tidsgräns när du väntar på resurser för att förhindra att testet hänger sig på obestämd tid i situationer där en resurs aldrig blir tillgänglig.
await resourceNotificationService.WaitForResourceAsync(
"webfrontend",
KnownResourceStates.Running
)
.WaitAsync(TimeSpan.FromSeconds(30));
Det här resursmeddelandemönstret säkerställer att resurserna är tillgängliga innan du kör testerna, vilket undviker potentiella problem med att testerna misslyckas på grund av att resurserna inte är klara.
Se även
.NET Aspire