Sdílet prostřednictvím


Přístup k prostředkům v testech .NET.NET Aspire

V tomto článku se dozvíte, jak v testech přistupovat k prostředkům z hostitele aplikace .NET.NET Aspire. Hostitel aplikace představuje celé aplikační prostředí a obsahuje všechny prostředky, které jsou pro aplikaci k dispozici. Při psaní funkčních nebo integračních testů s .NET.NET Aspiremožná budete muset k těmto prostředkům přistupovat, abyste ověřili chování aplikace.

Přístup k prostředkům HTTP

Pokud chcete získat přístup k prostředku HTTP, použijte HttpClient k vyžádání a příjmu odpovědí. DistributedApplication i DistributedApplicationFactory poskytují metodu CreateHttpClient, která se používá k vytvoření instance HttpClient pro konkrétní prostředek na základě názvu prostředku z hostitele aplikace. Tato metoda také přebírá volitelný parametr endpointName, takže pokud má prostředek více koncových bodů, můžete určit, který z nich se má použít.

Přístup k dalším prostředkům

V testu můžete chtít získat přístup k jiným prostředkům pomocí informací o připojení, které poskytují, například dotazováním databáze na ověření stavu dat. K tomu použijete metodu ConfigurationExtensions.GetConnectionString k načtení připojovacího řetězce pro prostředek a pak ji poskytnete klientské knihovně v rámci testu pro interakci s prostředkem.

Zajištění dostupnosti prostředků

Počínaje .NET.NET Aspire 9 je k dispozici podpora pro čekání na dostupnost závislých prostředků (pomocí mechanismu kontroly stavu). To je užitečné v testech, které před pokusem o přístup k prostředku zajišťují dostupnost prostředku. Třída ResourceNotificationService poskytuje ResourceNotificationService.WaitForResourceAsync metodu, která slouží k čekání, až bude pojmenovaný prostředek dostupný. Tato metoda přijímá název prostředku a požadovaný stav prostředku jako parametry a vrátí Task, který se obnoví, když je prostředek k dispozici.

Poznámka

Doporučuje se poskytnout časový limit při čekání na prostředky, aby se v situacích, kdy prostředek nikdy nebude dostupný, zabránilo zaseknutí testu na dobu neurčitou.

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

Tento model oznámení o prostředcích zajišťuje, že jsou prostředky před spuštěním testů k dispozici a zabrání potenciálním problémům s testy, které selhávají kvůli tomu, že prostředky nejsou připravené.

Viz také