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
Test |
Crea una nueva instancia de TestAdapter. |
Propiedades
active |
Obtiene la cola de respuestas del bot. |
conversation | Obtiene o establece una referencia a la conversación actual. |
enable |
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. |
on |
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 |
|
Propiedades heredadas
Bot |
|
Connector |
|
OAuth |
Métodos
add |
Agrega un token intercambiable falso para que se pueda intercambiar más adelante. |
add |
Agrega un token de usuario falso para que se pueda recuperar más adelante. |
continue |
El |
create |
Cree una conversationReference. |
exchange |
Realiza una operación de intercambio de tokens como para el inicio de sesión único. |
get |
Cierra la sesión del usuario con el servidor de tokens. |
get |
Desqueues y devuelve la siguiente respuesta del bot de activeQueue. |
get |
Obtiene un vínculo de inicio de sesión del servidor de tokens que se puede enviar como parte de un SigninCard. |
get |
Obtiene un recurso de inicio de sesión. |
get |
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. |
get |
Recupera el token de OAuth para un usuario que está en un flujo de inicio de sesión. |
make |
Crea una actividad de mensaje a partir del texto y el contexto conversacional actual. |
process |
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 |
send |
Procesa una actividad de mensaje de un usuario. |
sign |
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. |
test |
Pruebe una lista de actividades. |
throw |
Agrega una instrucción para iniciar una excepción durante las solicitudes de intercambio. |
Métodos heredados
continue |
Reanuda de forma asincrónica una conversación con un usuario, posiblemente después de algún tiempo. |
continue |
Reanuda de forma asincrónica una conversación con un usuario, posiblemente después de algún tiempo. |
continue |
Reanuda de forma asincrónica una conversación con un usuario, posiblemente después de algún tiempo. |
create |
Crea una conversación en el canal especificado. |
use((context: Turn |
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
ConnectorClientKey
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
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.
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.
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>
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
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
- 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
- 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