Dostęp do zasobów w testach .NET.NET Aspire
W tym artykule dowiesz się, jak uzyskać dostęp do zasobów z hosta aplikacji .NET.NET Aspire w testach. Host aplikacji reprezentuje pełne środowisko aplikacji i zawiera wszystkie zasoby, które są dostępne dla aplikacji. Podczas pisania testów funkcjonalnych lub integracyjnych za pomocą .NET.NET Aspiremoże być konieczne uzyskanie dostępu do tych zasobów w celu zweryfikowania zachowania aplikacji.
Uzyskiwanie dostępu do zasobów HTTP
Aby uzyskać dostęp do zasobu HTTP, użyj HttpClient do żądania i odbierania odpowiedzi.
DistributedApplication i DistributedApplicationFactory zapewniają metodę CreateHttpClient
użytą do utworzenia wystąpienia HttpClient
dla określonego zasobu na podstawie nazwy zasobu z hosta aplikacji. Ta metoda przyjmuje również opcjonalny parametr endpointName
, więc jeśli zasób ma wiele punktów końcowych, możesz określić, którego z nich użyć.
Uzyskiwanie dostępu do innych zasobów
W teście możesz chcieć uzyskać dostęp do innych zasobów przez podane przez nie informacje o połączeniu, na przykład wysyłając zapytanie do bazy danych w celu zweryfikowania stanu danych. W tym celu używasz metody ConfigurationExtensions.GetConnectionString, aby pobrać parametry połączenia dla zasobu, a następnie przekazujesz je do biblioteki klienta podczas testu, aby interaktywować z zasobem.
Upewnij się, że zasoby są dostępne
Począwszy od Task
, które oddaje, gdy zasób jest dostępny.
Notatka
Zaleca się zapewnienie limitu czasu podczas oczekiwania na zasoby, aby zapobiec zawieszaniu się testu w nieskończoność w sytuacjach, gdy zasób nigdy nie stanie się dostępny.
await resourceNotificationService.WaitForResourceAsync(
"webfrontend",
KnownResourceStates.Running
)
.WaitAsync(TimeSpan.FromSeconds(30));
Ten wzorzec powiadomień o zasobach gwarantuje, że zasoby są dostępne przed uruchomieniem testów, unikając potencjalnych problemów z niepowodzeniem testów z powodu braku gotowości zasobów.