TestAdapter class
Adattatore di test usato per gli unit test. Questo adapter può essere usato per simulare l'invio di messaggi dall'utente al bot.
- Extends
Commenti
Nell'esempio seguente viene configurato l'adattatore di test e quindi viene eseguito un test semplice:
const { TestAdapter } = require('botbuilder');
const adapter = new TestAdapter(async (context) => {
await context.sendActivity(`Hello World`);
});
adapter.test(`hi`, `Hello World`)
.then(() => done());
Costruttori
| Test |
Crea una nuova istanza di TestAdapter. |
Proprietà
| active |
Ottiene la coda di risposte dal bot. |
| conversation | Ottiene o imposta un riferimento alla conversazione corrente. |
| enable |
Ottiene un valore che indica se inviare attività di traccia. Imposta un valore che indica se inviare attività di traccia. |
| locale | Ottiene o imposta le impostazioni locali per la conversazione. |
| on |
Ottiene o imposta un gestore errori che può intercettare le eccezioni nel middleware o nell'applicazione. Imposta un gestore errori in grado di intercettare le eccezioni nel middleware o nell'applicazione. |
| template |
|
Proprietà ereditate
| Bot |
|
| Connector |
|
| OAuth |
Metodi
| add |
Aggiunge un token scambiabile falso in modo che possa essere scambiato in un secondo momento. |
| add |
Aggiunge un token utente falso in modo che possa essere recuperato in un secondo momento. |
| continue |
Il |
| create |
Creare un oggetto ConversationReference. |
| exchange |
Esegue un'operazione di scambio di token, ad esempio per l'accesso Single Sign-On. |
| get |
Disconnette l'utente con il server token. |
| get |
Rimuove dalla coda e restituisce la risposta successiva del bot da activeQueue. |
| get |
Ottiene un collegamento di accesso dal server token che può essere inviato come parte di signinCard. |
| get |
Ottiene una risorsa di accesso. |
| get |
Recupera in modo asincrono lo stato del token per ogni connessione configurata per l'utente specificato. In testAdapter recupera i token aggiunti in precedenza tramite addUserToken. |
| get |
Recupera il token OAuth per un utente che si trova in un flusso di accesso. |
| make |
Crea un'attività di messaggio dal testo e dal contesto di conversazione corrente. |
| process |
Riceve un'attività ed esegue l'attività tramite la pipeline middleware. |
| send(string | Partial<Activity>) | Invia qualcosa al bot. Viene restituita una nuova istanza di |
| send |
Elabora un'attività di messaggio da un utente. |
| sign |
Disconnette l'utente con il server token. |
| test(string | Partial<Activity>, string | Partial<Activity> | (activity: Partial<Activity>, description?: string) => void, string, number) | Inviare un elemento al bot e si prevede che il bot restituisca una risposta specifica. |
| test |
Testare un elenco di attività. |
| throw |
Aggiunge un'istruzione per generare un'eccezione durante le richieste di scambio. |
Metodi ereditati
| continue |
Riprende in modo asincrono una conversazione con un utente, possibilmente dopo un po' di tempo. |
| continue |
Riprende in modo asincrono una conversazione con un utente, possibilmente dopo un po' di tempo. |
| continue |
Riprende in modo asincrono una conversazione con un utente, possibilmente dopo un po' di tempo. |
| create |
Crea una conversazione sul canale specificato. |
| use((context: Turn |
Aggiunge middleware alla pipeline dell'adapter. |
Dettagli costruttore
TestAdapter((context: TurnContext) => Promise<void> | ConversationReference, Partial<Activity>, boolean)
Crea una nuova istanza di TestAdapter.
new TestAdapter(logicOrConversation?: (context: TurnContext) => Promise<void> | ConversationReference, template?: Partial<Activity>, sendTraceActivity?: boolean)
Parametri
- logicOrConversation
-
(context: TurnContext) => Promise<void> | ConversationReference
Logica dei bot sottoposta a test.
- template
-
Partial<Activity>
(Facoltativo) attività contenente valori predefiniti da assegnare a tutti i messaggi di test ricevuti.
- sendTraceActivity
-
boolean
Indica se l'adapter deve aggiungere alla coda eventuali attività di traccia generate dal bot.
Dettagli proprietà
activeQueue
Ottiene la coda di risposte dal bot.
activeQueue: Partial<Activity>[]
Valore della proprietà
Partial<Activity>[]
conversation
Ottiene o imposta un riferimento alla conversazione corrente.
conversation: ConversationReference
Valore della proprietà
ConversationReference
enableTrace
Ottiene un valore che indica se inviare attività di traccia. Imposta un valore che indica se inviare attività di traccia.
boolean enableTrace
Valore della proprietà
boolean
Valore che indica se inviare attività di traccia.
locale
Ottiene o imposta le impostazioni locali per la conversazione.
locale: string
Valore della proprietà
string
onTurnError
Ottiene o imposta un gestore errori che può intercettare le eccezioni nel middleware o nell'applicazione. Imposta un gestore errori in grado di intercettare le eccezioni nel middleware o nell'applicazione.
(context: TurnContext, error: Error) => Promise<void> onTurnError
Valore della proprietà
(context: TurnContext, error: Error) => Promise<void>
Promessa che rappresenta l'operazione asincrona.
Commenti
Il gestore degli errori viene chiamato con questi parametri:
| Nome | Digitare | Descrizione |
|---|---|---|
context |
TurnContext | Oggetto di contesto per il turno. |
error |
Error |
Errore Node.js generato. |
template
Activity modello che verrà unito a tutte le attività inviate alla logica sottoposta a test.
template: Partial<Activity>
Valore della proprietà
Partial<Activity>
Dettagli proprietà ereditate
BotIdentityKey
ConnectorClientKey
OAuthScopeKey
Dettagli metodo
addExchangeableToken(string, string, string, string, string)
Aggiunge un token scambiabile falso in modo che possa essere scambiato in un secondo momento.
function addExchangeableToken(connectionName: string, channelId: string, userId: string, exchangeableItem: string, token: string)
Parametri
- connectionName
-
string
Nome della connessione di autenticazione da usare.
- channelId
-
string
ID canale.
- userId
-
string
ID utente.
- exchangeableItem
-
string
URI del token o della risorsa scambiabile.
- token
-
string
Token da archiviare.
addUserToken(string, string, string, string, string)
Aggiunge un token utente falso in modo che possa essere recuperato in un secondo momento.
function addUserToken(connectionName: string, channelId: string, userId: string, token: string, magicCode?: string)
Parametri
- connectionName
-
string
Nome della connessione.
- channelId
-
string
ID del canale.
- userId
-
string
ID utente.
- token
-
string
Token da archiviare.
- magicCode
-
string
(Facoltativo) Codice magic facoltativo da associare a questo token.
continueConversation(Partial<ConversationReference>, (revocableContext: TurnContext) => Promise<void>)
Il TestAdapter non implementa continueConversation() e restituisce un errore se viene chiamato.
function continueConversation(_reference: Partial<ConversationReference>, _logic: (revocableContext: TurnContext) => Promise<void>): Promise<void>
Parametri
- _reference
-
Partial<ConversationReference>
Riferimento alla conversazione da continuare.
- _logic
-
(revocableContext: TurnContext) => Promise<void>
Metodo asincrono da chiamare dopo l'esecuzione del middleware dell'adapter.
Restituisce
Promise<void>
Promessa che rappresenta l'operazione asincrona.
createConversation(string, string, string)
Creare un oggetto ConversationReference.
static function createConversation(name: string, user?: string, bot?: string): ConversationReference
Parametri
- name
-
string
nome della conversazione (id).
- user
-
string
nome dell'utente (ID) predefinito: User1.
- bot
-
string
nome del bot (id) predefinito: bot.
Restituisce
ConversationReference
exchangeToken(TurnContext, string, string, TokenExchangeRequest)
Esegue un'operazione di scambio di token, ad esempio per l'accesso Single Sign-On.
function exchangeToken(context: TurnContext, connectionName: string, userId: string, tokenExchangeRequest: TokenExchangeRequest): Promise<TokenResponse>
Parametri
- context
- TurnContext
(xref:botbuilder-core. TurnContext) per il turno corrente della conversazione con l'utente.
- connectionName
-
string
Nome della connessione di autenticazione da usare.
- userId
-
string
ID utente associato al token.
- tokenExchangeRequest
-
TokenExchangeRequest
Dettagli della richiesta di Exchange, un token da scambiare o un URI da scambiare.
Restituisce
Promise<TokenResponse>
Se la promessa viene completata, viene restituito il token scambiato.
getAadTokens(TurnContext, string, string[])
Disconnette l'utente con il server token.
function getAadTokens(_context: TurnContext, _connectionName: string, _resourceUrls: string[]): Promise<[key: string]: TokenResponse>
Parametri
- _context
- TurnContext
Contesto per il turno di conversazione corrente con l'utente.
- _connectionName
-
string
Nome della connessione di autenticazione da usare.
- _resourceUrls
-
string[]
Elenco di URL di risorse per cui recuperare i token.
Restituisce
Promise<[key: string]: TokenResponse>
Dizionario di resourceUrl nell'oggetto TokenResponse corrispondente.
getNextReply()
Rimuove dalla coda e restituisce la risposta successiva del bot da activeQueue.
function getNextReply(): Partial<Activity>
Restituisce
Partial<Activity>
L'attività successiva nella coda; o non definito, se la coda è vuota.
getSignInLink(TurnContext, string)
Ottiene un collegamento di accesso dal server token che può essere inviato come parte di signinCard.
function getSignInLink(context: TurnContext, connectionName: string): Promise<string>
Parametri
- context
- TurnContext
Contesto per il turno di conversazione corrente con l'utente.
- connectionName
-
string
Nome della connessione di autenticazione da usare.
Restituisce
Promise<string>
Collegamento di accesso dal server token che può essere inviato come parte di signinCard.
getSignInResource(TurnContext, string, string, string)
Ottiene una risorsa di accesso.
function getSignInResource(context: TurnContext, connectionName: string, userId?: string, _finalRedirect?: string): Promise<SignInUrlResponse>
Parametri
- context
- TurnContext
(xref:botbuilder-core. TurnContext) per il turno corrente della conversazione con l'utente.
- connectionName
-
string
Nome della connessione di autenticazione da usare.
- userId
-
string
ID utente
- _finalRedirect
-
string
URL di reindirizzamento finale.
Restituisce
Promise<SignInUrlResponse>
Oggetto
getTokenStatus(TurnContext, string, string, any)
Recupera in modo asincrono lo stato del token per ogni connessione configurata per l'utente specificato. In testAdapter recupera i token aggiunti in precedenza tramite addUserToken.
function getTokenStatus(context: TurnContext, userId: string, includeFilter?: string, _oAuthAppCredentials?: any): Promise<any[]>
Parametri
- context
- TurnContext
Oggetto di contesto per il turno.
- userId
-
string
ID dell'utente per cui recuperare lo stato del token.
- includeFilter
-
string
Opzionale. Elenco delimitato da virgole della connessione da includere. Se presente, il parametro includeFilter limita i token restituiti da questo metodo.
- _oAuthAppCredentials
-
any
AppCredentials per OAuth.
Restituisce
Promise<any[]>
L'TokenStatus oggetti recuperati.
getUserToken(TurnContext, string, string)
Recupera il token OAuth per un utente che si trova in un flusso di accesso.
function getUserToken(context: TurnContext, connectionName: string, magicCode?: string): Promise<TokenResponse>
Parametri
- context
- TurnContext
Contesto per il turno di conversazione corrente con l'utente.
- connectionName
-
string
Nome della connessione di autenticazione da usare.
- magicCode
-
string
(Facoltativo) Codice immesso dall'utente facoltativo da convalidare.
Restituisce
Promise<TokenResponse>
Token OAuth per un utente che si trova in un flusso di accesso.
makeActivity(string)
Crea un'attività di messaggio dal testo e dal contesto di conversazione corrente.
function makeActivity(text?: string): Partial<Activity>
Parametri
- text
-
string
Testo del messaggio.
Restituisce
Partial<Activity>
Un'attività di messaggio appropriata.
processActivity(string | Partial<Activity>, (context: TurnContext) => Promise<any>)
Riceve un'attività ed esegue l'attività tramite la pipeline middleware.
function processActivity(activity: string | Partial<Activity>, callback?: (context: TurnContext) => Promise<any>): Promise<any>
Parametri
- activity
-
string | Partial<Activity>
Attività da elaborare.
- callback
-
(context: TurnContext) => Promise<any>
Logica del bot da richiamare.
Restituisce
Promise<any>
Promessa che rappresenta l'operazione asincrona.
send(string | Partial<Activity>)
Invia qualcosa al bot. Viene restituita una nuova istanza di TestFlow che può essere usata per aggiungere passaggi aggiuntivi per controllare la risposta dei bot e quindi inviare attività aggiuntive.
function send(userSays: string | Partial<Activity>): TestFlow
Parametri
- userSays
-
string | Partial<Activity>
Testo o attività che simulano l'input dell'utente.
Restituisce
una nuova istanza di TestFlow che può essere usata per aggiungere passaggi aggiuntivi per esaminare i bot di risposta e quindi inviare attività aggiuntive.
Commenti
In questo esempio viene illustrato come inviare un messaggio e quindi verificare che la risposta fosse come previsto:
adapter.send('hi')
.assertReply('Hello World')
.then(() => done());
sendTextToBot(string, (context: TurnContext) => Promise<any>)
Elabora un'attività di messaggio da un utente.
function sendTextToBot(userSays: string, callback: (context: TurnContext) => Promise<any>): Promise<any>
Parametri
- userSays
-
string
Testo del messaggio dell'utente.
- callback
-
(context: TurnContext) => Promise<any>
Logica del bot da richiamare.
Restituisce
Promise<any>
Promessa che rappresenta l'operazione asincrona.
signOutUser(TurnContext, string, string)
Disconnette l'utente con il server token.
function signOutUser(context: TurnContext, connectionName?: string, userId?: string): Promise<void>
Parametri
- context
- TurnContext
Contesto per il turno di conversazione corrente con l'utente.
- connectionName
-
string
Nome della connessione di autenticazione da usare.
- userId
-
string
ID utente da disconnettere.
Restituisce
Promise<void>
test(string | Partial<Activity>, string | Partial<Activity> | (activity: Partial<Activity>, description?: string) => void, string, number)
Inviare un elemento al bot e si prevede che il bot restituisca una risposta specifica.
function test(userSays: string | Partial<Activity>, expected: string | Partial<Activity> | (activity: Partial<Activity>, description?: string) => void, description?: string, _timeout?: number): TestFlow
Parametri
- userSays
-
string | Partial<Activity>
Testo o attività che simulano l'input dell'utente.
- expected
-
string | Partial<Activity> | (activity: Partial<Activity>, description?: string) => void
Testo o attività previsti della risposta inviata dal bot.
- description
-
string
(Facoltativo) Descrizione del test case. Se non ne viene specificato uno, verrà generato.
- _timeout
-
number
(Facoltativo) numero di millisecondi per attendere una risposta dal bot. Il valore predefinito è 3000.
Restituisce
Nuovo oggetto TestFlow che accoda questo scambio allo scambio modellato.
Commenti
Si tratta semplicemente di un wrapper per le chiamate a send() e assertReply(). Si tratta di un modello così comune fornito da un helper.
adapter.test('hi', 'Hello World')
.then(() => done());
testActivities(Partial<Activity>[], string, number)
Testare un elenco di attività.
function testActivities(activities: Partial<Activity>[], description?: string, timeout?: number): TestFlow
Parametri
- activities
-
Partial<Activity>[]
Matrice di attività.
- description
-
string
(Facoltativo) Descrizione del test case. Se non ne viene specificato uno, verrà generato.
- timeout
-
number
(Facoltativo) numero di millisecondi per attendere una risposta dal bot. Il valore predefinito è 3000.
Restituisce
Nuovo oggetto TestFlow che accoda questo scambio allo scambio modellato.
Commenti
Ogni attività con il ruolo "bot" verrà elaborata con assertReply() e ogni altra attività verrà elaborata come messaggio utente con send().
throwOnExchangeRequest(string, string, string, string)
Aggiunge un'istruzione per generare un'eccezione durante le richieste di scambio.
function throwOnExchangeRequest(connectionName: string, channelId: string, userId: string, exchangeableItem: string)
Parametri
- connectionName
-
string
Nome della connessione.
- channelId
-
string
ID del canale.
- userId
-
string
ID utente.
- exchangeableItem
-
string
Token scambiabile o URI della risorsa.
Dettagli dei metodi ereditati
continueConversationAsync(ClaimsIdentity, Partial<ConversationReference>, (context: TurnContext) => Promise<void>)
Riprende in modo asincrono una conversazione con un utente, possibilmente dopo un po' di tempo.
function continueConversationAsync(claimsIdentity: ClaimsIdentity, reference: Partial<ConversationReference>, logic: (context: TurnContext) => Promise<void>): Promise<void>
Parametri
- claimsIdentity
-
ClaimsIdentity
claimsIdentity
- reference
-
Partial<ConversationReference>
Un parziale di ConversationReference alla conversazione per continuare.
- logic
-
(context: TurnContext) => Promise<void>
Metodo asincrono da chiamare dopo l'esecuzione del middleware dell'adapter.
Restituisce
Promise<void>
promessa che rappresenta l'operazione asincrona
ereditato daBotAdapter.continueConversationAsync
continueConversationAsync(ClaimsIdentity, Partial<ConversationReference>, string, (context: TurnContext) => Promise<void>)
Riprende in modo asincrono una conversazione con un utente, possibilmente dopo un po' di tempo.
function continueConversationAsync(claimsIdentity: ClaimsIdentity, reference: Partial<ConversationReference>, audience: string, logic: (context: TurnContext) => Promise<void>): Promise<void>
Parametri
- claimsIdentity
-
ClaimsIdentity
claimsIdentity
- reference
-
Partial<ConversationReference>
Un parziale di ConversationReference alla conversazione per continuare.
- audience
-
string
Valore che indica il destinatario del messaggio proattivo.
- logic
-
(context: TurnContext) => Promise<void>
Metodo asincrono da chiamare dopo l'esecuzione del middleware dell'adapter.
Restituisce
Promise<void>
promessa che rappresenta l'operazione asincrona
ereditato daBotAdapter.continueConversationAsync
continueConversationAsync(string, Partial<ConversationReference>, (context: TurnContext) => Promise<void>)
Riprende in modo asincrono una conversazione con un utente, possibilmente dopo un po' di tempo.
function continueConversationAsync(botAppId: string, reference: Partial<ConversationReference>, logic: (context: TurnContext) => Promise<void>): Promise<void>
Parametri
- botAppId
-
string
ID applicazione del bot. Questo parametro viene ignorato in un singolo tenant gli adapter (console, test e così via), ma è fondamentale per BotFrameworkAdapter che è compatibile con più tenant.
- reference
-
Partial<ConversationReference>
Un parziale di ConversationReference alla conversazione per continuare.
- logic
-
(context: TurnContext) => Promise<void>
Metodo asincrono da chiamare dopo l'esecuzione del middleware dell'adapter.
Restituisce
Promise<void>
promessa che rappresenta l'operazione asincrona
ereditato daBotAdapter.continueConversationAsync
createConversationAsync(string, string, string, string, ConversationParameters, (context: TurnContext) => Promise<void>)
Crea una conversazione sul canale specificato.
function createConversationAsync(_botAppId: string, _channelId: string, _serviceUrl: string, _audience: string, _conversationParameters: ConversationParameters, _logic: (context: TurnContext) => Promise<void>): Promise<void>
Parametri
- _botAppId
-
string
ID applicazione del bot.
- _channelId
-
string
ID del canale.
- _serviceUrl
-
string
ID del canale.
- _audience
-
string
Destinatari del connettore.
- _conversationParameters
-
ConversationParameters
Informazioni sulla conversazione da usare per creare la conversazione
- _logic
-
(context: TurnContext) => Promise<void>
Metodo da chiamare per il turno del bot risultante.
Restituisce
Promise<void>
Promessa che rappresenta l'operazione asincrona
Commenti
Per avviare una conversazione, il bot deve conoscere le informazioni sull'account e le informazioni sull'account dell'utente su tale canale. La maggior parte _channels supporta solo l'avvio di una conversazione diretta (non di gruppo).
L'adapter tenta di creare una nuova conversazione sul canale e quindi invia un'attività conversationUpdate tramite la pipeline middleware al metodo logico.
Se la conversazione viene stabilita con gli utenti specificati, l'ID della conversazione dell'attività conterrà l'ID della nuova conversazione.
ereditato daBotAdapter.createConversationAsync
use((context: TurnContext, next: () => Promise<void>) => Promise<void> | Middleware[])
Aggiunge middleware alla pipeline dell'adapter.
function use(middlewares: (context: TurnContext, next: () => Promise<void>) => Promise<void> | Middleware[]): this
Parametri
- middlewares
-
(context: TurnContext, next: () => Promise<void>) => Promise<void> | Middleware[]
Gestori middleware o middleware da aggiungere.
Restituisce
this
Oggetto adapter aggiornato.
Commenti
Il middleware viene aggiunto all'adapter in fase di inizializzazione. Ogni turno, l'adattatore chiama il middleware nell'ordine in cui è stato aggiunto.
Ereditato daBotAdapter.use