Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Abilitata per | Anteprima pubblica | Disponibilità generale |
---|---|---|
Amministratori, autori, responsabili del marketing o analisti, automaticamente |
![]() |
![]() |
Valore aziendale
Per consentire una testabilità più semplice del codice AL che chiama i servizi Web in uscita, stiamo introducendo la possibilità di simulare tali chiamate. In questo modo lo sviluppatore può impostare come hardcoded i valori restituiti al codice chiamante durante i test, senza eseguire effettivamente la chiamata al servizio Web in uscita. La possibilità di simulare le chiamate è particolarmente utile quando si testano le funzionalità di Copilot e dell'IA, in quanto gli sviluppatori possono scrivere unit test per queste senza connettersi effettivamente al Servizio OpenAI di Azure, evitando qualsiasi superfluo utilizzo di token. Tieni presente che la funzionalità è limitata solo alle istanze locali, inclusi i contenitori utilizzati per i test automatizzati.
Dettagli sulla funzionalità
Gli sviluppatori di AL possono simulare facilmente le chiamate Get/Put/Delete/Post di HttpClient negli unit test. L'idea è quella di consentire facili sostituzioni delle risposte delle chiamate HttpClient negli unit test introducendo una nuova funzione di gestione per intercettare le chiamate HttpClient.
Quando un oggetto HttpClientHandler viene aggiunto a un metodo di test, ogni richiesta HTTP che si verifica durante l'esecuzione di tale test verrà intercettata e instradata al gestore. La firma del metodo del gestore è la seguente: riceve un TestHttpRequestMessage
che contiene informazioni sulla richiesta HTTP, nonché un TestHttpResponseMessage
che contiene i valori di risposta HTTP fittizi che devono essere aggiornati dal gestore. Il valore restituito booleano indica se eseguire il fall-through ed eseguire la richiesta HTTP originale (vero) o utilizzare la risposta fittizia (falso).
È stata inoltre introdotta una nuova proprietà sulle codeunit di test denominata TestHttpRequestPolicy
. Questa proprietà determina il modo in cui le richieste HTTP in uscita vengono considerate durante l'esecuzione del test e include i seguenti valori possibili:
-
BlockOutboundRequests
: qualsiasi richiesta HTTP effettuata durante l'esecuzione del test che non viene rilevata e gestita da un gestore client HTTP genererà un'eccezione. -
AllowOutboundFromHandler
: tutte le richieste HTTP generate durante l'esecuzione del test devono essere intercettate da un gestore client HTTP. Al gestore è consentito eseguire esplicitamente il fallback per inviare la richiesta originale all'endpoint esterno. -
AllowAllOutboundRequests
: sono consentite tutte le richieste HTTP in uscita emesse durante l'esecuzione del test.
Di seguito viene illustrato un esempio di codeunit che effettua una chiamata a un servizio Web esterno, nonché un test codeunit che intercetta e simula questa chiamata. Nota l'uso di HttpClientHandler nel codeunit del test.
Comunicaci la tua opinione
Aiutaci a migliorare Dynamics 365 Business Central condividendo idee fornendo suggerimenti e inviando feedback. Utilizza il forum all'indirizzo https://aka.ms/bcideas.
Risorse aggiuntive
Simulare le chiamate al servizio Web HttpClient in uscita durante il test (documentazione)