Compartilhar via


Acessar recursos nos testes .NET.NET Aspire

Neste artigo, você aprenderá a acessar os recursos do host do aplicativo .NET.NET Aspire em seus testes. O host do aplicativo representa o ambiente completo do aplicativo e contém todos os recursos disponíveis para o aplicativo. Ao escrever testes funcionais ou de integração com .NET.NET Aspire, talvez seja necessário acessar esses recursos para verificar o comportamento do aplicativo.

Acessar recursos HTTP

Para acessar um recurso HTTP, use o HttpClient para solicitar e receber respostas. O DistributedApplication e o DistributedApplicationFactory fornecem um método CreateHttpClient usado para criar uma instância de HttpClient para um recurso específico, com base no nome do recurso do host do aplicativo. Esse método também usa um parâmetro endpointName opcional, portanto, se o recurso tiver vários pontos de extremidade, você poderá especificar qual deles usar.

Acessar outros recursos

Em um teste, talvez você queira acessar outros recursos pelas informações de conexão que eles fornecem, por exemplo, consultando um banco de dados para verificar o estado dos dados. Para isso, use o método ConfigurationExtensions.GetConnectionString para recuperar a cadeia de conexão de um recurso e, em seguida, forneça isso a uma biblioteca de clientes dentro do teste para interagir com o recurso.

Verifique se os recursos estão disponíveis

A partir do .NET.NET Aspire 9, é possível aguardar que os recursos dependentes estejam disponíveis, por meio do mecanismo de verificação de integridade . Isso é útil em testes que garantem que um recurso esteja disponível antes de tentar acessá-lo. A classe ResourceNotificationService fornece um método ResourceNotificationService.WaitForResourceAsync usado para aguardar que um recurso nomeado esteja disponível. Esse método usa o nome do recurso e o estado desejado do recurso como parâmetros e retorna um Task que retorna quando o recurso está disponível.

Nota

É recomendável fornecer um tempo limite ao aguardar recursos, para impedir que o teste fique suspenso indefinidamente em situações em que um recurso nunca fica disponível.

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

Esse padrão de notificação de recurso garante que os recursos estejam disponíveis antes de executar os testes, evitando possíveis problemas com a falha dos testes devido aos recursos não estarem prontos.

Consulte também