Compartilhar via


TestAdapter class

Adaptador de teste usado para testes de unidade. Esse adaptador pode ser usado para simular o envio de mensagens do usuário para o bot.

Extends

Comentários

O exemplo a seguir configura o adaptador de teste e, em seguida, executa um teste simples:

const { TestAdapter } = require('botbuilder');

const adapter = new TestAdapter(async (context) => {
     await context.sendActivity(`Hello World`);
});

adapter.test(`hi`, `Hello World`)
       .then(() => done());

Construtores

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

Cria uma nova instância de TestAdapter.

Propriedades

activeQueue

Obtém a fila de respostas do bot.

conversation

Obtém ou define uma referência à conversa atual.

enableTrace

Obtém um valor que indica se as atividades de rastreamento devem ser enviadas. Define um valor que determina se as atividades de rastreamento devem ser enviadas.

locale

Obtém ou define a localidade da conversa.

onTurnError

Obtém ou define um manipulador de erros que pode capturar exceções no middleware ou aplicativo. Define um manipulador de erros que pode capturar exceções no middleware ou aplicativo.

template

Activity modelo que será mesclado com todas as atividades enviadas à lógica em teste.

Propriedades herdadas

BotIdentityKey
ConnectorClientKey
OAuthScopeKey

Métodos

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

Adiciona um token trocável falso para que ele possa ser trocado posteriormente.

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

Adiciona um token de usuário falso para que ele possa ser recuperado posteriormente.

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

O TestAdapter não implementa continueConversation() e retornará um erro se for chamado.

createConversation(string, string, string)

Crie uma ConversationReference.

exchangeToken(TurnContext, string, string, TokenExchangeRequest)

Executa uma operação de troca de token, como para logon único.

getAadTokens(TurnContext, string, string[])

Desconscreve o usuário com o servidor de token.

getNextReply()

Desativa e retorna a próxima resposta de bot do activeQueue.

getSignInLink(TurnContext, string)

Obtém um link de entrada do servidor de token que pode ser enviado como parte de um SigninCard.

getSignInResource(TurnContext, string, string, string)

Obtém um recurso de entrada.

getTokenStatus(TurnContext, string, string, any)

Recupera de forma assíncrona o status do token para cada conexão configurada para o usuário fornecido. No testAdapter, recupera tokens que foram adicionados anteriormente por meio de addUserToken.

getUserToken(TurnContext, string, string)

Recupera o token OAuth para um usuário que está em um fluxo de entrada.

makeActivity(string)

Cria uma atividade de mensagem com base no texto e no contexto de conversa atual.

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

Recebe uma atividade e a executa por meio do pipeline de middleware.

send(string | Partial<Activity>)

Envia algo para o bot. Isso retorna uma nova instância de TestFlow que pode ser usada para adicionar etapas adicionais para inspecionar a resposta dos bots e, em seguida, enviar atividades adicionais.

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

Processa uma atividade de mensagem de um usuário.

signOutUser(TurnContext, string, string)

Desconscreve o usuário com o servidor de token.

test(string | Partial<Activity>, string | Partial<Activity> | (activity: Partial<Activity>, description?: string) => void, string, number)

Envie algo para o bot e espera que o bot retorne com uma determinada resposta.

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

Teste uma lista de atividades.

throwOnExchangeRequest(string, string, string, string)

Adiciona uma instrução para gerar uma exceção durante solicitações de troca.

Métodos herdados

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

Retoma de forma assíncrona uma conversa com um usuário, possivelmente depois de algum tempo.

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

Retoma de forma assíncrona uma conversa com um usuário, possivelmente depois de algum tempo.

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

Retoma de forma assíncrona uma conversa com um usuário, possivelmente depois de algum tempo.

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

Cria uma conversa no canal especificado.

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

Adiciona middleware ao pipeline do adaptador.

Detalhes do construtor

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

Cria uma nova instância de TestAdapter.

new TestAdapter(logicOrConversation?: (context: TurnContext) => Promise<void> | ConversationReference, template?: Partial<Activity>, sendTraceActivity?: boolean)

Parâmetros

logicOrConversation

(context: TurnContext) => Promise<void> | ConversationReference

A lógica de bots que está em teste.

template

Partial<Activity>

Atividade (opcional) que contém valores padrão a serem atribuídos a todas as mensagens de teste recebidas.

sendTraceActivity

boolean

Indica se o adaptador deve adicionar à fila as atividades de rastreamento geradas pelo bot.

Detalhes da propriedade

activeQueue

Obtém a fila de respostas do bot.

activeQueue: Partial<Activity>[]

Valor da propriedade

Partial<Activity>[]

conversation

Obtém ou define uma referência à conversa atual.

conversation: ConversationReference

Valor da propriedade

ConversationReference

enableTrace

Obtém um valor que indica se as atividades de rastreamento devem ser enviadas. Define um valor que determina se as atividades de rastreamento devem ser enviadas.

boolean enableTrace

Valor da propriedade

boolean

Um valor que indica se as atividades de rastreamento devem ser enviadas.

locale

Obtém ou define a localidade da conversa.

locale: string

Valor da propriedade

string

onTurnError

Obtém ou define um manipulador de erros que pode capturar exceções no middleware ou aplicativo. Define um manipulador de erros que pode capturar exceções no middleware ou aplicativo.

(context: TurnContext, error: Error) => Promise<void> onTurnError

Valor da propriedade

(context: TurnContext, error: Error) => Promise<void>

Uma promessa que representa a operação assíncrona.

Comentários

O manipulador de erros é chamado com estes parâmetros:

Nome Tipo Descrição
context TurnContext O objeto de contexto para a curva.
error Error O erro de Node.js gerado.

template

Activity modelo que será mesclado com todas as atividades enviadas à lógica em teste.

template: Partial<Activity>

Valor da propriedade

Partial<Activity>

Detalhes das propriedades herdadas

BotIdentityKey

BotIdentityKey: symbol

Valor da propriedade

symbol

herdado de BotAdapter.BotIdentityKey

ConnectorClientKey

ConnectorClientKey: symbol

Valor da propriedade

symbol

herdado de BotAdapter.ConnectorClientKey

OAuthScopeKey

OAuthScopeKey: symbol

Valor da propriedade

symbol

herdado de BotAdapter.OAuthScopeKey

Detalhes do método

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

Adiciona um token trocável falso para que ele possa ser trocado posteriormente.

function addExchangeableToken(connectionName: string, channelId: string, userId: string, exchangeableItem: string, token: string)

Parâmetros

connectionName

string

Nome da conexão de autenticação a ser usada.

channelId

string

ID do canal.

userId

string

Identificação de usuário.

exchangeableItem

string

Token ou URI de recurso que pode ser trocado.

token

string

Token a ser armazenado.

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

Adiciona um token de usuário falso para que ele possa ser recuperado posteriormente.

function addUserToken(connectionName: string, channelId: string, userId: string, token: string, magicCode?: string)

Parâmetros

connectionName

string

O nome da conexão.

channelId

string

A ID do canal.

userId

string

A ID do usuário.

token

string

O token a ser armazenado.

magicCode

string

(Opcional) O código mágico opcional a ser associado a esse token.

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

O TestAdapter não implementa continueConversation() e retornará um erro se for chamado.

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

Parâmetros

_reference

Partial<ConversationReference>

Uma referência à conversa a continuar.

_logic

(revocableContext: TurnContext) => Promise<void>

O método assíncrono a ser chamado após a execução do middleware do adaptador.

Retornos

Promise<void>

Uma promessa que representa a operação assíncrona.

createConversation(string, string, string)

Crie uma ConversationReference.

static function createConversation(name: string, user?: string, bot?: string): ConversationReference

Parâmetros

name

string

nome da conversa (também id).

user

string

nome do usuário (também id) padrão: User1.

bot

string

nome do bot (também id) padrão: Bot.

Retornos

ConversationReference

OConversationReference .

exchangeToken(TurnContext, string, string, TokenExchangeRequest)

Executa uma operação de troca de token, como para logon único.

function exchangeToken(context: TurnContext, connectionName: string, userId: string, tokenExchangeRequest: TokenExchangeRequest): Promise<TokenResponse>

Parâmetros

context
TurnContext

(xref:botbuilder-core. TurnContext) para a virada atual da conversa com o usuário.

connectionName

string

Nome da conexão de autenticação a ser usada.

userId

string

ID do usuário associada ao token.

tokenExchangeRequest

TokenExchangeRequest

Detalhes da solicitação do Exchange, um token a ser trocado ou um uri a ser trocado.

Retornos

Promise<TokenResponse>

Se a promessa for concluída, o token trocado será retornado.

getAadTokens(TurnContext, string, string[])

Desconscreve o usuário com o servidor de token.

function getAadTokens(_context: TurnContext, _connectionName: string, _resourceUrls: string[]): Promise<[key: string]: TokenResponse>

Parâmetros

_context
TurnContext

Contexto para a virada atual da conversa com o usuário.

_connectionName

string

Nome da conexão de autenticação a ser usada.

_resourceUrls

string[]

A lista de URLs de recurso para a qual recuperar tokens.

Retornos

Promise<[key: string]: TokenResponse>

Um dicionário de resourceUrl para o TokenResponse correspondente.

getNextReply()

Desativa e retorna a próxima resposta de bot do activeQueue.

function getNextReply(): Partial<Activity>

Retornos

Partial<Activity>

A próxima atividade na fila; ou indefinido, se a fila estiver vazia.

Obtém um link de entrada do servidor de token que pode ser enviado como parte de um SigninCard.

function getSignInLink(context: TurnContext, connectionName: string): Promise<string>

Parâmetros

context
TurnContext

Contexto para a virada atual da conversa com o usuário.

connectionName

string

Nome da conexão de autenticação a ser usada.

Retornos

Promise<string>

Um link de entrada do servidor de token que pode ser enviado como parte de um SigninCard.

getSignInResource(TurnContext, string, string, string)

Obtém um recurso de entrada.

function getSignInResource(context: TurnContext, connectionName: string, userId?: string, _finalRedirect?: string): Promise<SignInUrlResponse>

Parâmetros

context
TurnContext

(xref:botbuilder-core. TurnContext) para a virada atual da conversa com o usuário.

connectionName

string

Nome da conexão de autenticação a ser usada.

userId

string

Identificação de usuário

_finalRedirect

string

URL de redirecionamento final.

Retornos

Promise<SignInUrlResponse>

Um com um novo objeto SignInUrlResponse.

getTokenStatus(TurnContext, string, string, any)

Recupera de forma assíncrona o status do token para cada conexão configurada para o usuário fornecido. No testAdapter, recupera tokens que foram adicionados anteriormente por meio de addUserToken.

function getTokenStatus(context: TurnContext, userId: string, includeFilter?: string, _oAuthAppCredentials?: any): Promise<any[]>

Parâmetros

context
TurnContext

O objeto de contexto para a curva.

userId

string

A ID do usuário para o qual recuperar o status do token.

includeFilter

string

Opcional. Uma lista separada por vírgulas das conexões a serem incluídas. Se estiver presente, o parâmetro includeFilter limitará os tokens retornados por esse método.

_oAuthAppCredentials

any

AppCredentials para OAuth.

Retornos

Promise<any[]>

Os objetos TokenStatus recuperados.

getUserToken(TurnContext, string, string)

Recupera o token OAuth para um usuário que está em um fluxo de entrada.

function getUserToken(context: TurnContext, connectionName: string, magicCode?: string): Promise<TokenResponse>

Parâmetros

context
TurnContext

Contexto para a virada atual da conversa com o usuário.

connectionName

string

Nome da conexão de autenticação a ser usada.

magicCode

string

(Opcional) Código inserido pelo usuário opcional para validar.

Retornos

Promise<TokenResponse>

O token OAuth para um usuário que está em um fluxo de entrada.

makeActivity(string)

Cria uma atividade de mensagem com base no texto e no contexto de conversa atual.

function makeActivity(text?: string): Partial<Activity>

Parâmetros

text

string

O texto da mensagem.

Retornos

Partial<Activity>

Uma atividade de mensagem apropriada.

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

Recebe uma atividade e a executa por meio do pipeline de middleware.

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

Parâmetros

activity

string | Partial<Activity>

A atividade a ser processada.

callback

(context: TurnContext) => Promise<any>

A lógica do bot a ser invocada.

Retornos

Promise<any>

Uma promessa que representa a operação assíncrona.

send(string | Partial<Activity>)

Envia algo para o bot. Isso retorna uma nova instância de TestFlow que pode ser usada para adicionar etapas adicionais para inspecionar a resposta dos bots e, em seguida, enviar atividades adicionais.

function send(userSays: string | Partial<Activity>): TestFlow

Parâmetros

userSays

string | Partial<Activity>

Texto ou atividade simulando a entrada do usuário.

Retornos

uma nova instância TestFlow que pode ser usada para adicionar etapas adicionais para inspecionar a resposta dos bots e, em seguida, enviar atividades adicionais.

Comentários

Este exemplo mostra como enviar uma mensagem e, em seguida, verificar se a resposta era conforme o esperado:

adapter.send('hi')
       .assertReply('Hello World')
       .then(() => done());

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

Processa uma atividade de mensagem de um usuário.

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

Parâmetros

userSays

string

O texto da mensagem do usuário.

callback

(context: TurnContext) => Promise<any>

A lógica do bot a ser invocada.

Retornos

Promise<any>

Uma promessa que representa a operação assíncrona.

signOutUser(TurnContext, string, string)

Desconscreve o usuário com o servidor de token.

function signOutUser(context: TurnContext, connectionName?: string, userId?: string): Promise<void>

Parâmetros

context
TurnContext

Contexto para a virada atual da conversa com o usuário.

connectionName

string

Nome da conexão de autenticação a ser usada.

userId

string

ID do usuário para sair.

Retornos

Promise<void>

test(string | Partial<Activity>, string | Partial<Activity> | (activity: Partial<Activity>, description?: string) => void, string, number)

Envie algo para o bot e espera que o bot retorne com uma determinada resposta.

function test(userSays: string | Partial<Activity>, expected: string | Partial<Activity> | (activity: Partial<Activity>, description?: string) => void, description?: string, _timeout?: number): TestFlow

Parâmetros

userSays

string | Partial<Activity>

Texto ou atividade simulando a entrada do usuário.

expected

string | Partial<Activity> | (activity: Partial<Activity>, description?: string) => void

Texto ou atividade esperado da resposta enviada pelo bot.

description

string

(Opcional) Descrição do caso de teste. Se não for fornecido, um será gerado.

_timeout

number

(Opcional) número de milissegundos para aguardar uma resposta do bot. O padrão é um valor de 3000.

Retornos

Um novo objeto TestFlow que acrescenta essa troca à troca modelada.

Comentários

Isso é simplesmente um wrapper em torno de chamadas para send() e assertReply(). Esse é um padrão tão comum que um auxiliar é fornecido.

adapter.test('hi', 'Hello World')
       .then(() => done());

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

Teste uma lista de atividades.

function testActivities(activities: Partial<Activity>[], description?: string, timeout?: number): TestFlow

Parâmetros

activities

Partial<Activity>[]

Matriz de atividades.

description

string

(Opcional) Descrição do caso de teste. Se não for fornecido, um será gerado.

timeout

number

(Opcional) número de milissegundos para aguardar uma resposta do bot. O padrão é um valor de 3000.

Retornos

Um novo objeto TestFlow que acrescenta essa troca à troca modelada.

Comentários

Cada atividade com a função "bot" será processada com assertReply() e todas as outras atividades serão processadas como uma mensagem de usuário com send().

throwOnExchangeRequest(string, string, string, string)

Adiciona uma instrução para gerar uma exceção durante solicitações de troca.

function throwOnExchangeRequest(connectionName: string, channelId: string, userId: string, exchangeableItem: string)

Parâmetros

connectionName

string

O nome da conexão.

channelId

string

A ID do canal.

userId

string

A ID do usuário.

exchangeableItem

string

O token ou o URI de recurso que pode ser trocado.

Detalhes do método herdado

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

Retoma de forma assíncrona uma conversa com um usuário, possivelmente depois de algum tempo.

function continueConversationAsync(claimsIdentity: ClaimsIdentity, reference: Partial<ConversationReference>, logic: (context: TurnContext) => Promise<void>): Promise<void>

Parâmetros

claimsIdentity

ClaimsIdentity

Um ClaimsIdentity para a conversa.

reference

Partial<ConversationReference>

Um ConversationReference parcial para que a conversa continue.

logic

(context: TurnContext) => Promise<void>

O método assíncrono a ser chamado após a execução do middleware do adaptador.

Retornos

Promise<void>

uma promessa que representa a operação assíncrona

Herdado deBotAdapter.continueConversationAsync

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

Retoma de forma assíncrona uma conversa com um usuário, possivelmente depois de algum tempo.

function continueConversationAsync(claimsIdentity: ClaimsIdentity, reference: Partial<ConversationReference>, audience: string, logic: (context: TurnContext) => Promise<void>): Promise<void>

Parâmetros

claimsIdentity

ClaimsIdentity

Um ClaimsIdentity para a conversa.

reference

Partial<ConversationReference>

Um ConversationReference parcial para que a conversa continue.

audience

string

Um valor que significa o destinatário da mensagem proativa.

logic

(context: TurnContext) => Promise<void>

O método assíncrono a ser chamado após a execução do middleware do adaptador.

Retornos

Promise<void>

uma promessa que representa a operação assíncrona

Herdado deBotAdapter.continueConversationAsync

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

Retoma de forma assíncrona uma conversa com um usuário, possivelmente depois de algum tempo.

function continueConversationAsync(botAppId: string, reference: Partial<ConversationReference>, logic: (context: TurnContext) => Promise<void>): Promise<void>

Parâmetros

botAppId

string

A ID do aplicativo do bot. Esse parâmetro é ignorado em um único locatário dos Adaptadores (Console, Teste etc),mas é fundamental para o BotFrameworkAdapter, que tem reconhecimento multilocatário.

reference

Partial<ConversationReference>

Um ConversationReference parcial para que a conversa continue.

logic

(context: TurnContext) => Promise<void>

O método assíncrono a ser chamado após a execução do middleware do adaptador.

Retornos

Promise<void>

uma promessa que representa a operação assíncrona

Herdado deBotAdapter.continueConversationAsync

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

Cria uma conversa no canal especificado.

function createConversationAsync(_botAppId: string, _channelId: string, _serviceUrl: string, _audience: string, _conversationParameters: ConversationParameters, _logic: (context: TurnContext) => Promise<void>): Promise<void>

Parâmetros

_botAppId

string

A ID do aplicativo do bot.

_channelId

string

A ID do canal.

_serviceUrl

string

A ID do canal.

_audience

string

O público-alvo do conector.

_conversationParameters

ConversationParameters

As informações de conversa a serem usadas para criar a conversa

_logic

(context: TurnContext) => Promise<void>

O método a ser chamado para a curva de bot resultante.

Retornos

Promise<void>

Uma promessa que representa a operação assíncrona

Comentários

Para iniciar uma conversa, o bot deve saber suas informações de conta e as informações da conta do usuário nesse canal. A maioria dos _channels dá suporte apenas ao início de uma conversa direta (não em grupo).

O adaptador tenta criar uma nova conversa no canal e envia uma atividade conversationUpdate por meio de seu pipeline de middleware para o método lógico.

Se a conversa for estabelecida com os usuários especificados, a ID da conversão da atividade conterá a ID da nova conversa.

Herdado deBotAdapter.createConversationAsync

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

Adiciona middleware ao pipeline do adaptador.

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

Parâmetros

middlewares

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

Os manipuladores de middleware ou middleware a serem adicionados.

Retornos

this

O objeto do adaptador atualizado.

Comentários

O middleware é adicionado ao adaptador no momento da inicialização. A cada turno, o adaptador chama seu middleware na ordem em que você o adicionou.

Herdado doBotAdapter.use