Mengakses sumber daya dalam pengujian .NET.NET Aspire
Dalam artikel ini, Anda akan mempelajari cara mengakses sumber daya dari host aplikasi .NET.NET Aspire dalam pengujian Anda. Host aplikasi mewakili lingkungan aplikasi lengkap dan berisi semua sumber daya yang tersedia untuk aplikasi. Saat menulis pengujian fungsi atau integrasi dengan .NET.NET Aspire, Anda mungkin perlu mengakses sumber daya ini untuk memverifikasi perilaku aplikasi Anda.
Mengakses sumber daya HTTP
Untuk mengakses sumber daya HTTP, gunakan HttpClient untuk meminta dan menerima respons.
DistributedApplication dan DistributedApplicationFactory keduanya menyediakan metode CreateHttpClient
yang digunakan untuk membuat instans HttpClient
untuk sumber daya tertentu, berdasarkan nama sumber daya dari host aplikasi. Metode ini juga mengambil parameter endpointName
opsional, jadi jika sumber daya memiliki beberapa titik akhir, Anda dapat menentukan mana yang akan digunakan.
Mengakses sumber daya lain
Dalam pengujian, Anda mungkin ingin mengakses sumber daya lain dengan informasi koneksi yang mereka berikan, misalnya, mengkueri database untuk memverifikasi status data. Untuk ini, Anda menggunakan metode ConfigurationExtensions.GetConnectionString untuk mengambil string koneksi untuk sumber daya, lalu menyediakannya ke pustaka client dalam pengujian untuk berinteraksi dengan sumber daya.
Pastikan sumber daya tersedia
Dimulai dengan .NET.NET Aspire 9, tersedia dukungan untuk menunggu ketersediaan sumber daya yang tergantung (melalui mekanisme pengecekan kesehatan ). Ini berguna dalam pengujian yang memastikan sumber daya tersedia sebelum mencoba mengaksesnya. Kelas ResourceNotificationService menyediakan metode ResourceNotificationService.WaitForResourceAsync yang digunakan untuk menunggu sumber daya bernama tersedia. Metode ini mengambil nama sumber daya dan status sumber daya yang diinginkan sebagai parameter dan mengembalikan Task
yang menghasilkan kembali ketika sumber daya tersedia.
Nota
Disarankan untuk memberikan batas waktu saat menunggu sumber daya, untuk mencegah pengujian menggantung tanpa batas waktu dalam situasi di mana sumber daya tidak pernah tersedia.
await resourceNotificationService.WaitForResourceAsync(
"webfrontend",
KnownResourceStates.Running
)
.WaitAsync(TimeSpan.FromSeconds(30));
Pola pemberitahuan sumber daya ini memastikan bahwa sumber daya tersedia sebelum menjalankan pengujian, menghindari potensi masalah dengan pengujian yang gagal karena sumber daya tidak siap.
Lihat juga
- Tulis pengujian .NET.NET Aspire pertama Anda
- Mengelola host aplikasi dalam pengujian .NET.NET Aspire
.NET Aspire