Compartir a través de


Acceso a recursos en pruebas de .NET.NET Aspire

En este artículo, aprenderá a acceder a los recursos desde el host de la aplicación .NET.NET Aspire en las pruebas. El host de la aplicación representa el entorno de aplicación completo y contiene todos los recursos que están disponibles para la aplicación. Al escribir pruebas funcionales o de integración con .NET.NET Aspire, es posible que tenga que acceder a estos recursos para comprobar el comportamiento de la aplicación.

Acceso a recursos HTTP

Para acceder a un recurso HTTP, use el HttpClient para solicitar y recibir respuestas. Tanto el DistributedApplication como el DistributedApplicationFactory proporcionan un método CreateHttpClient que se usa para crear una instancia de HttpClient para un recurso específico, en función del nombre del recurso del host de la aplicación. Este método también toma un parámetro opcional endpointName, por lo que si el recurso tiene varios puntos de conexión, puede especificar cuál se va a usar.

Acceso a otros recursos

En una prueba, es posible que desee acceder a otros recursos mediante la información de conexión que proporcionan, por ejemplo, consultar una base de datos para comprobar el estado de los datos. Para ello, se usa el método ConfigurationExtensions.GetConnectionString para recuperar la cadena de conexión de un recurso y, a continuación, se proporciona a una biblioteca de client dentro de la prueba para interactuar con el recurso.

Asegurarse de que los recursos están disponibles

A partir de .NET.NET Aspire 9, se ofrece soporte para esperar a que los recursos dependientes estén disponibles (a través del mecanismo de comprobación de estado de ). Esto es útil en las pruebas que garantizan que un recurso está disponible antes de intentar acceder a él. La clase ResourceNotificationService proporciona un método ResourceNotificationService.WaitForResourceAsync que se usa para esperar a que un recurso con nombre esté disponible. Este método toma el nombre del recurso y el estado deseado del recurso como parámetros y devuelve un Task que devuelve cuando el recurso está disponible.

Nota

Se recomienda proporcionar un tiempo de espera al esperar recursos, para evitar que la prueba se bloquee indefinidamente en situaciones en las que un recurso nunca esté disponible.

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

Este patrón de notificación de recursos garantiza que los recursos están disponibles antes de ejecutar las pruebas, evitando posibles problemas con las pruebas con errores debido a que los recursos no están listos.

Consulte también