Erőforrások elérése .NET.NET Aspire tesztekben
Ebben a cikkben megtudhatja, hogyan érheti el az erőforrásokat az .NET.NET Aspire alkalmazás gazdagépéről a tesztekben. Az alkalmazásgazda a teljes alkalmazáskörnyezetet jelöli, és tartalmazza az alkalmazás számára elérhető összes erőforrást. Ha funkcionális vagy integrációs teszteket ír .NET.NET Aspire, előfordulhat, hogy hozzá kell férnie ezekhez az erőforrásokhoz az alkalmazás viselkedésének ellenőrzéséhez.
HTTP-erőforrások elérése
HTTP-erőforrás eléréséhez használja a HttpClient a válaszok kéréséhez és fogadásához. A DistributedApplication és a DistributedApplicationFactory egyaránt biztosít egy CreateHttpClient
metódust, amellyel egy adott erőforráshoz HttpClient
-példányt hozhat létre az alkalmazás gazdagépétől származó erőforrásnév alapján. Ez a módszer egy opcionális endpointName
paramétert is használ, így ha az erőforrás több végpontot is használ, megadhatja, hogy melyiket használja.
Egyéb erőforrások elérése
Egy teszt során előfordulhat, hogy az általuk megadott kapcsolati adatokkal szeretne más erőforrásokhoz hozzáférni, például lekérdezni egy adatbázist az adatok állapotának ellenőrzéséhez. Ehhez a ConfigurationExtensions.GetConnectionString metódussal lekérheti egy erőforrás kapcsolati sztringét, majd ezt egy client erőforrástárnak adja meg a teszten belül az erőforrással való interakcióhoz.
Győződjön meg arról, hogy az erőforrások elérhetők
.NET
.NET Aspire 9-től támogatott a függő erőforrások rendelkezésre állásának várása (az egészségügyi ellenőrzési mechanizmuson keresztül). Ez olyan tesztekben hasznos, amelyek biztosítják, hogy egy erőforrás elérhető legyen, mielőtt megkísérelnénk elérni. A ResourceNotificationService osztály egy ResourceNotificationService.WaitForResourceAsync metódust biztosít, amellyel megvárhatja, amíg egy elnevezett erőforrás elérhetővé válik. Ez a metódus paraméterként az erőforrás nevét és kívánt állapotát veszi fel, és visszaad egy Task
, amely várakozik, amíg az erőforrás elérhetővé nem válik.
Jegyzet
Javasoljuk, hogy időtúllépést biztosítson az erőforrásokra való várakozáskor, hogy megakadályozza a teszt határozatlan ideig való lelógását olyan helyzetekben, amikor egy erőforrás soha nem válik elérhetővé.
await resourceNotificationService.WaitForResourceAsync(
"webfrontend",
KnownResourceStates.Running
)
.WaitAsync(TimeSpan.FromSeconds(30));
Ez az erőforrás-értesítési minta biztosítja, hogy az erőforrások elérhetők legyenek a tesztek futtatása előtt, elkerülve a tesztekkel kapcsolatos esetleges problémákat, mivel az erőforrások nem állnak készen.