.NET .NET Aspire testlerindeki kaynaklara erişme
Bu makalede, testlerinizdeki .NET.NET Aspire uygulama konağından kaynaklara erişmeyi öğreneceksiniz. Uygulama konağı tam uygulama ortamını temsil eder ve uygulamanın kullanabileceği tüm kaynakları içerir. .NET .NET Aspireile işlevsel veya tümleştirme testleri yazarken uygulamanızın davranışını doğrulamak için bu kaynaklara erişmeniz gerekebilir.
HTTP kaynaklarına erişme
HTTP kaynağına erişmek için yanıt istemek ve almak için HttpClient kullanın.
DistributedApplication ve DistributedApplicationFactory, uygulama ana bilgisayarındaki kaynak adına göre belirli bir kaynak için bir CreateHttpClient
örneği oluşturmak amacıyla kullanılan HttpClient
yöntemini sağlar. Bu yöntem ayrıca isteğe bağlı bir endpointName
parametresi alır, dolayısıyla kaynağın birden çok uç noktası varsa hangisinin kullanılacağını belirtebilirsiniz.
Diğer kaynaklara erişme
Bir testte, sağladıkları bağlantı bilgileriyle diğer kaynaklara erişmek isteyebilirsiniz; örneğin, verilerin durumunu doğrulamak için veritabanını sorgulama. Bunun için, ConfigurationExtensions.GetConnectionString yöntemini kullanarak bir kaynağın bağlantı dizesini alırsınız ve bunu testteki bir istemci kitaplığına kaynakla etkileşime geçmek için sağlarsınız.
Kaynakların kullanılabilir olduğundan emin olun
.NET
.NET Aspire 9'dan başlayarak, bağımlı kaynakların kullanılabilir olmasını bekleme desteği sağlanır (sistem durumu denetimi mekanizması aracılığıyla). Bu, bir kaynağın erişmeye çalışmadan önce kullanılabilir olduğundan emin olan testlerde kullanışlıdır.
ResourceNotificationService sınıfı, adlandırılmış kaynağın kullanılabilir olmasını beklemek için kullanılan bir ResourceNotificationService.WaitForResourceAsync yöntemi sağlar. Bu yöntem kaynak adını ve kaynağın istenen durumunu parametre olarak alır ve kaynak kullanılabilir olduğunda geri dönen bir Task
döndürür.
Not
Kaynağın hiçbir zaman kullanılabilir olmadığı durumlarda testin süresiz olarak kilitlenmesini önlemek için kaynakları beklerken zaman aşımı sağlanması önerilir.
await resourceNotificationService.WaitForResourceAsync(
"webfrontend",
KnownResourceStates.Running
)
.WaitAsync(TimeSpan.FromSeconds(30));
Bu kaynak bildirimi düzeni, testleri çalıştırmadan önce kaynakların kullanılabilir olmasını sağlar ve kaynakların hazır olmaması nedeniyle başarısız olan testlerle ilgili olası sorunları önler.
Ayrıca bkz.
.NET Aspire