TestAdapter class

Adaptador de prueba usado para pruebas unitarias. Este adaptador se puede usar para simular el envío de mensajes del usuario al bot.

Extends

Comentarios

En el ejemplo siguiente se configura el adaptador de prueba y, a continuación, se ejecuta una prueba sencilla:

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

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

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

Constructores

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

Crea una nueva instancia de TestAdapter.

Propiedades

activeQueue

Obtiene la cola de respuestas del bot.

conversation

Obtiene o establece una referencia a la conversación actual.

enableTrace

Obtiene un valor que indica si se van a enviar actividades de seguimiento. Establece un valor que indica si se van a enviar actividades de seguimiento.

locale

Obtiene o establece la configuración regional de la conversación.

onTurnError

Obtiene o establece un controlador de errores que puede detectar excepciones en el middleware o la aplicación. Establece un controlador de errores que puede detectar excepciones en el middleware o la aplicación.

template

Activity plantilla que se combinará con todas las actividades enviadas a la lógica en prueba.

Propiedades heredadas

BotIdentityKey
ConnectorClientKey
OAuthScopeKey

Métodos

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

Agrega un token intercambiable falso para que se pueda intercambiar más adelante.

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

Agrega un token de usuario falso para que se pueda recuperar más adelante.

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

El TestAdapter no implementa continueConversation() y devolverá un error si se llama.

createConversation(string, string, string)

Cree una conversationReference.

exchangeToken(TurnContext, string, string, TokenExchangeRequest)

Realiza una operación de intercambio de tokens como para el inicio de sesión único.

getAadTokens(TurnContext, string, string[])

Cierra la sesión del usuario con el servidor de tokens.

getNextReply()

Desqueues y devuelve la siguiente respuesta del bot de activeQueue.

getSignInLink(TurnContext, string)

Obtiene un vínculo de inicio de sesión del servidor de tokens que se puede enviar como parte de un SigninCard.

getSignInResource(TurnContext, string, string, string)

Obtiene un recurso de inicio de sesión.

getTokenStatus(TurnContext, string, string, any)

Recupera de forma asincrónica el estado del token para cada conexión configurada para el usuario especificado. En testAdapter, recupera los tokens que se agregaron anteriormente a través de addUserToken.

getUserToken(TurnContext, string, string)

Recupera el token de OAuth para un usuario que está en un flujo de inicio de sesión.

makeActivity(string)

Crea una actividad de mensaje a partir del texto y el contexto conversacional actual.

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

Recibe una actividad y la ejecuta a través de la canalización de middleware.

send(string | Partial<Activity>)

Envía algo al bot. Esto devuelve una nueva instancia de TestFlow que se puede usar para agregar pasos adicionales para inspeccionar la respuesta de los bots y, a continuación, enviar actividades adicionales.

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

Procesa una actividad de mensaje de un usuario.

signOutUser(TurnContext, string, string)

Cierra la sesión del usuario con el servidor de tokens.

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

Envíe algo al bot y espera que el bot vuelva con una respuesta determinada.

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

Pruebe una lista de actividades.

throwOnExchangeRequest(string, string, string, string)

Agrega una instrucción para iniciar una excepción durante las solicitudes de intercambio.

Métodos heredados

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

Reanuda de forma asincrónica una conversación con un usuario, posiblemente después de algún tiempo.

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

Reanuda de forma asincrónica una conversación con un usuario, posiblemente después de algún tiempo.

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

Reanuda de forma asincrónica una conversación con un usuario, posiblemente después de algún tiempo.

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

Crea una conversación en el canal especificado.

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

Agrega middleware a la canalización del adaptador.

Detalles del constructor

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

Crea una nueva instancia de TestAdapter.

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

Parámetros

logicOrConversation

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

Lógica de bots que se está probando.

template

Partial<Activity>

(Opcional) actividad que contiene valores predeterminados para asignar a todos los mensajes de prueba recibidos.

sendTraceActivity

boolean

Indica si el adaptador debe agregar a su cola las actividades de seguimiento generadas por el bot.

Detalles de las propiedades

activeQueue

Obtiene la cola de respuestas del bot.

activeQueue: Partial<Activity>[]

Valor de propiedad

Partial<Activity>[]

conversation

Obtiene o establece una referencia a la conversación actual.

conversation: ConversationReference

Valor de propiedad

ConversationReference

enableTrace

Obtiene un valor que indica si se van a enviar actividades de seguimiento. Establece un valor que indica si se van a enviar actividades de seguimiento.

boolean enableTrace

Valor de propiedad

boolean

Valor que indica si se van a enviar actividades de seguimiento.

locale

Obtiene o establece la configuración regional de la conversación.

locale: string

Valor de propiedad

string

onTurnError

Obtiene o establece un controlador de errores que puede detectar excepciones en el middleware o la aplicación. Establece un controlador de errores que puede detectar excepciones en el middleware o la aplicación.

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

Valor de propiedad

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

Promesa que representa la operación asincrónica.

Comentarios

Se llama al controlador de errores con estos parámetros:

Nombre Tipo Descripción
context TurnContext Objeto de contexto del turno.
error Error Error de Node.js producido.

template

Activity plantilla que se combinará con todas las actividades enviadas a la lógica en prueba.

template: Partial<Activity>

Valor de propiedad

Partial<Activity>

Detalles de las propiedades heredadas

BotIdentityKey

BotIdentityKey: symbol

Valor de propiedad

symbol

heredado debotAdapter.BotIdentityKey

ConnectorClientKey

ConnectorClientKey: symbol

Valor de propiedad

symbol

heredado de BotAdapter.ConnectorClientKey

OAuthScopeKey

OAuthScopeKey: symbol

Valor de propiedad

symbol

heredado debotAdapter.OAuthScopeKey

Detalles del método

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

Agrega un token intercambiable falso para que se pueda intercambiar más adelante.

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

Parámetros

connectionName

string

Nombre de la conexión de autenticación que se va a usar.

channelId

string

Id. de canal.

userId

string

Id. de usuario.

exchangeableItem

string

Token intercambiable o URI de recursos.

token

string

Token que se va a almacenar.

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

Agrega un token de usuario falso para que se pueda recuperar más adelante.

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

Parámetros

connectionName

string

Nombre de la conexión.

channelId

string

Identificador del canal.

userId

string

Identificador de usuario.

token

string

Token que se va a almacenar.

magicCode

string

(Opcional) Código mágico opcional que se va a asociar a este token.

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

El TestAdapter no implementa continueConversation() y devolverá un error si se llama.

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

Parámetros

_reference

Partial<ConversationReference>

Referencia a la conversación que se va a continuar.

_logic

(revocableContext: TurnContext) => Promise<void>

Método asincrónico al que llamar después de que se ejecute el middleware del adaptador.

Devoluciones

Promise<void>

Promesa que representa la operación asincrónica.

createConversation(string, string, string)

Cree una conversationReference.

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

Parámetros

name

string

nombre de la conversación (también identificador).

user

string

nombre del usuario (también identificador) predeterminado: User1.

bot

string

nombre del bot (también identificador) predeterminado: Bot.

Devoluciones

ConversationReference

El ConversationReference.

exchangeToken(TurnContext, string, string, TokenExchangeRequest)

Realiza una operación de intercambio de tokens como para el inicio de sesión único.

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

Parámetros

context
TurnContext

(xref:botbuilder-core. TurnContext) para el turno actual de conversación con el usuario.

connectionName

string

Nombre de la conexión de autenticación que se va a usar.

userId

string

Identificador de usuario asociado al token.

tokenExchangeRequest

TokenExchangeRequest

Detalles de la solicitud de Exchange, ya sea un token para intercambiar o un URI para intercambiar.

Devoluciones

Promise<TokenResponse>

Si se completa la promesa, se devuelve el token intercambiado.

getAadTokens(TurnContext, string, string[])

Cierra la sesión del usuario con el servidor de tokens.

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

Parámetros

_context
TurnContext

Contexto para el turno actual de conversación con el usuario.

_connectionName

string

Nombre de la conexión de autenticación que se va a usar.

_resourceUrls

string[]

Lista de direcciones URL de recursos para las que se van a recuperar tokens.

Devoluciones

Promise<[key: string]: TokenResponse>

Diccionario de resourceUrl al tokenResponse correspondiente.

getNextReply()

Desqueues y devuelve la siguiente respuesta del bot de activeQueue.

function getNextReply(): Partial<Activity>

Devoluciones

Partial<Activity>

La siguiente actividad de la cola; o undefined, si la cola está vacía.

Obtiene un vínculo de inicio de sesión del servidor de tokens que se puede enviar como parte de un SigninCard.

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

Parámetros

context
TurnContext

Contexto para el turno actual de conversación con el usuario.

connectionName

string

Nombre de la conexión de autenticación que se va a usar.

Devoluciones

Promise<string>

Vínculo de inicio de sesión desde el servidor de tokens que se puede enviar como parte de signinCard.

getSignInResource(TurnContext, string, string, string)

Obtiene un recurso de inicio de sesión.

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

Parámetros

context
TurnContext

(xref:botbuilder-core. TurnContext) para el turno actual de conversación con el usuario.

connectionName

string

Nombre de la conexión de autenticación que se va a usar.

userId

string

Id. de usuario

_finalRedirect

string

Dirección URL de redireccionamiento final.

Devoluciones

Promise<SignInUrlResponse>

Un Promise con un nuevo objeto signInUrlResponse .

getTokenStatus(TurnContext, string, string, any)

Recupera de forma asincrónica el estado del token para cada conexión configurada para el usuario especificado. En testAdapter, recupera los tokens que se agregaron anteriormente a través de addUserToken.

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

Parámetros

context
TurnContext

Objeto de contexto del turno.

userId

string

Identificador del usuario para el que se va a recuperar el estado del token.

includeFilter

string

Opcional. Lista separada por comas de las conexiones que se van a incluir. Si está presente, el parámetro includeFilter limita los tokens que devuelve este método.

_oAuthAppCredentials

any

AppCredentials para OAuth.

Devoluciones

Promise<any[]>

Los objetos TokenStatus recuperados.

getUserToken(TurnContext, string, string)

Recupera el token de OAuth para un usuario que está en un flujo de inicio de sesión.

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

Parámetros

context
TurnContext

Contexto para el turno actual de conversación con el usuario.

connectionName

string

Nombre de la conexión de autenticación que se va a usar.

magicCode

string

(Opcional) El usuario opcional especificó el código para validarlo.

Devoluciones

Promise<TokenResponse>

Token de OAuth para un usuario que está en un flujo de inicio de sesión.

makeActivity(string)

Crea una actividad de mensaje a partir del texto y el contexto conversacional actual.

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

Parámetros

text

string

Texto del mensaje.

Devoluciones

Partial<Activity>

Una actividad de mensaje adecuada.

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

Recibe una actividad y la ejecuta a través de la canalización de middleware.

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

Parámetros

activity

string | Partial<Activity>

Actividad que se va a procesar.

callback

(context: TurnContext) => Promise<any>

Lógica del bot que se va a invocar.

Devoluciones

Promise<any>

Promesa que representa la operación asincrónica.

send(string | Partial<Activity>)

Envía algo al bot. Esto devuelve una nueva instancia de TestFlow que se puede usar para agregar pasos adicionales para inspeccionar la respuesta de los bots y, a continuación, enviar actividades adicionales.

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

Parámetros

userSays

string | Partial<Activity>

Texto o actividad simulando la entrada del usuario.

Devoluciones

una nueva instancia TestFlow que se puede usar para agregar pasos adicionales para inspeccionar la respuesta de los bots y, a continuación, enviar actividades adicionales.

Comentarios

En este ejemplo se muestra cómo enviar un mensaje y, a continuación, comprobar que la respuesta era la esperada:

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

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

Procesa una actividad de mensaje de un usuario.

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

Parámetros

userSays

string

Texto del mensaje del usuario.

callback

(context: TurnContext) => Promise<any>

Lógica del bot que se va a invocar.

Devoluciones

Promise<any>

Promesa que representa la operación asincrónica.

signOutUser(TurnContext, string, string)

Cierra la sesión del usuario con el servidor de tokens.

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

Parámetros

context
TurnContext

Contexto para el turno actual de conversación con el usuario.

connectionName

string

Nombre de la conexión de autenticación que se va a usar.

userId

string

Id. de usuario para cerrar la sesión.

Devoluciones

Promise<void>

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

Envíe algo al bot y espera que el bot vuelva con una respuesta determinada.

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 o actividad simulando la entrada del usuario.

expected

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

Texto o actividad esperados de la respuesta enviada por el bot.

description

string

(Opcional) Descripción del caso de prueba. Si no se proporciona, se generará uno.

_timeout

number

(Opcional) número de milisegundos para esperar una respuesta del bot. El valor predeterminado es 3000.

Devoluciones

Nuevo TestFlow objeto que anexa este intercambio al intercambio modelado.

Comentarios

Esto es simplemente un contenedor en torno a las llamadas a send() y assertReply(). Este es un patrón tan común que se proporciona un asistente.

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

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

Pruebe una lista de actividades.

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

Parámetros

activities

Partial<Activity>[]

Matriz de actividades.

description

string

(Opcional) Descripción del caso de prueba. Si no se proporciona, se generará uno.

timeout

number

(Opcional) número de milisegundos para esperar una respuesta del bot. El valor predeterminado es 3000.

Devoluciones

Nuevo TestFlow objeto que anexa este intercambio al intercambio modelado.

Comentarios

Cada actividad con el rol "bot" se procesará con assertReply() y todas las demás actividades se procesarán como un mensaje de usuario con send().

throwOnExchangeRequest(string, string, string, string)

Agrega una instrucción para iniciar una excepción durante las solicitudes de intercambio.

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

Parámetros

connectionName

string

Nombre de la conexión.

channelId

string

Identificador del canal.

userId

string

Identificador de usuario.

exchangeableItem

string

Token intercambiable o URI de recurso.

Detalles de los métodos heredados

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

Reanuda de forma asincrónica una conversación con un usuario, posiblemente después de algún tiempo.

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

Parámetros

claimsIdentity

ClaimsIdentity

claimsIdentity de para la conversación.

reference

Partial<ConversationReference>

Una ConversationReference parcial a la conversación para continuar.

logic

(context: TurnContext) => Promise<void>

Método asincrónico al que llamar después de que se ejecute el middleware del adaptador.

Devoluciones

Promise<void>

una promesa que representa la operación asincrónica

heredado deBotAdapter.continueConversationAsync

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

Reanuda de forma asincrónica una conversación con un usuario, posiblemente después de algún tiempo.

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

Parámetros

claimsIdentity

ClaimsIdentity

claimsIdentity de para la conversación.

reference

Partial<ConversationReference>

Una ConversationReference parcial a la conversación para continuar.

audience

string

Valor que indica al destinatario del mensaje proactivo.

logic

(context: TurnContext) => Promise<void>

Método asincrónico al que llamar después de que se ejecute el middleware del adaptador.

Devoluciones

Promise<void>

una promesa que representa la operación asincrónica

heredado deBotAdapter.continueConversationAsync

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

Reanuda de forma asincrónica una conversación con un usuario, posiblemente después de algún tiempo.

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

Parámetros

botAppId

string

Identificador de aplicación del bot. Este parámetro se omite en un solo inquilino los adaptadores (consola, prueba, etcetera), pero es fundamental para BotFrameworkAdapter, que es compatible con varios inquilinos.

reference

Partial<ConversationReference>

Una ConversationReference parcial a la conversación para continuar.

logic

(context: TurnContext) => Promise<void>

Método asincrónico al que llamar después de que se ejecute el middleware del adaptador.

Devoluciones

Promise<void>

una promesa que representa la operación asincrónica

heredado deBotAdapter.continueConversationAsync

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

Crea una conversación en el 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

Identificador de aplicación del bot.

_channelId

string

Identificador del canal.

_serviceUrl

string

Identificador del canal.

_audience

string

Audiencia del conector.

_conversationParameters

ConversationParameters

La información de conversación que se va a usar para crear la conversación

_logic

(context: TurnContext) => Promise<void>

Método que se va a llamar al turno del bot resultante.

Devoluciones

Promise<void>

Promesa que representa la operación asincrónica

Comentarios

Para iniciar una conversación, el bot debe conocer su información de cuenta y la información de la cuenta del usuario en ese canal. La mayoría de _channels solo admiten iniciar una conversación de mensaje directo (no grupo).

El adaptador intenta crear una nueva conversación en el canal y, a continuación, envía una actividad de conversationUpdate a través de su canalización de middleware al método lógico.

Si la conversación se establece con los usuarios especificados, el identificador de la convergencia de la actividad contendrá el identificador de la nueva conversación.

heredado deBotAdapter.createConversationAsync

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

Agrega middleware a la canalización del adaptador.

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

Parámetros

middlewares

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

Los controladores de middleware o middleware que se van a agregar.

Devoluciones

this

Objeto de adaptador actualizado.

Comentarios

El middleware se agrega al adaptador en el momento de la inicialización. Cada turno, el adaptador llama a su middleware en el orden en que lo agregó.

heredado deBotAdapter.use