Condividi tramite


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

TestAdapter((context: TurnContext) => Promise<void> | ConversationReference, Partial<Activity>, boolean)

Crea una nuova istanza di TestAdapter.

Proprietà

activeQueue

Ottiene la coda di risposte dal bot.

conversation

Ottiene o imposta un riferimento alla conversazione corrente.

enableTrace

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.

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.

template

Activity modello che verrà unito a tutte le attività inviate alla logica sottoposta a test.

Proprietà ereditate

BotIdentityKey
ConnectorClientKey
OAuthScopeKey

Metodi

addExchangeableToken(string, string, string, string, string)

Aggiunge un token scambiabile falso in modo che possa essere scambiato in un secondo momento.

addUserToken(string, string, string, string, string)

Aggiunge un token utente falso in modo che possa essere recuperato in un secondo momento.

continueConversation(Partial<ConversationReference>, (revocableContext: TurnContext) => Promise<void>)

Il TestAdapter non implementa continueConversation() e restituisce un errore se viene chiamato.

createConversation(string, string, string)

Creare un oggetto ConversationReference.

exchangeToken(TurnContext, string, string, TokenExchangeRequest)

Esegue un'operazione di scambio di token, ad esempio per l'accesso Single Sign-On.

getAadTokens(TurnContext, string, string[])

Disconnette l'utente con il server token.

getNextReply()

Rimuove dalla coda e restituisce la risposta successiva del bot da activeQueue.

getSignInLink(TurnContext, string)

Ottiene un collegamento di accesso dal server token che può essere inviato come parte di signinCard.

getSignInResource(TurnContext, string, string, string)

Ottiene una risorsa di accesso.

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.

getUserToken(TurnContext, string, string)

Recupera il 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.

processActivity(string | Partial<Activity>, (context: TurnContext) => Promise<any>)

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 TestFlow che può essere usata per aggiungere passaggi aggiuntivi per controllare la risposta dei bot e quindi inviare attività aggiuntive.

sendTextToBot(string, (context: TurnContext) => Promise<any>)

Elabora un'attività di messaggio da un utente.

signOutUser(TurnContext, string, string)

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.

testActivities(Partial<Activity>[], string, number)

Testare un elenco di attività.

throwOnExchangeRequest(string, string, string, string)

Aggiunge un'istruzione per generare un'eccezione durante le richieste di scambio.

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.

continueConversationAsync(ClaimsIdentity, Partial<ConversationReference>, string, (context: TurnContext) => Promise<void>)

Riprende in modo asincrono una conversazione con un utente, possibilmente dopo un po' di tempo.

continueConversationAsync(string, Partial<ConversationReference>, (context: TurnContext) => Promise<void>)

Riprende in modo asincrono una conversazione con un utente, possibilmente dopo un po' di tempo.

createConversationAsync(string, string, string, string, ConversationParameters, (context: TurnContext) => Promise<void>)

Crea una conversazione sul canale specificato.

use((context: TurnContext, next: () => Promise<void>) => Promise<void> | Middleware[])

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

BotIdentityKey: symbol

Valore della proprietà

symbol

ereditato daBotAdapter.BotIdentityKey

ConnectorClientKey

ConnectorClientKey: symbol

Valore della proprietà

symbol

ereditato daBotAdapter.ConnectorClientKey

OAuthScopeKey

OAuthScopeKey: symbol

Valore della proprietà

symbol

ereditato daBotAdapter.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

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.

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 con un nuovo oggetto SignInUrlResponse di .

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 per la conversazione.

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 per la conversazione.

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