Partager via


TestAdapter class

Adaptateur de test utilisé pour les tests unitaires. Cet adaptateur peut être utilisé pour simuler l’envoi de messages de l’utilisateur au bot.

Extends

Remarques

L’exemple suivant configure l’adaptateur de test, puis exécute un test simple :

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

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

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

Constructeurs

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

Crée une instance TestAdapter.

Propriétés

activeQueue

Obtient la file d’attente des réponses du bot.

conversation

Obtient ou définit une référence à la conversation actuelle.

enableTrace

Obtient une valeur indiquant s’il faut envoyer des activités de trace. Définit une valeur inidicatant s’il faut envoyer des activités de suivi.

locale

Obtient ou définit les paramètres régionaux de la conversation.

onTurnError

Obtient ou définit un gestionnaire d’erreurs qui peut intercepter des exceptions dans l’intergiciel ou l’application. Définit un gestionnaire d’erreurs qui peut intercepter des exceptions dans l’intergiciel ou l’application.

template

Activity modèle qui sera fusionné avec toutes les activités envoyées à la logique testée.

Propriétés héritées

BotIdentityKey
ConnectorClientKey
OAuthScopeKey

Méthodes

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

Ajoute un jeton échangeable factice afin qu’il puisse être échangé ultérieurement.

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

Ajoute un jeton d’utilisateur factice afin qu’il puisse être récupéré ultérieurement.

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

Le TestAdapter n’implémente pas continueConversation() et retourne une erreur si elle est appelée.

createConversation(string, string, string)

Créez une conversationReference.

exchangeToken(TurnContext, string, string, TokenExchangeRequest)

Effectue une opération d’échange de jetons telle que pour l’authentification unique.

getAadTokens(TurnContext, string, string[])

Déconnecte l’utilisateur avec le serveur de jetons.

getNextReply()

Dequeues et retourne la réponse du bot suivant à partir de l’activeQueue.

getSignInLink(TurnContext, string)

Obtient un lien de connexion à partir du serveur de jetons qui peut être envoyé dans le cadre d’une carte SigninCard.

getSignInResource(TurnContext, string, string, string)

Obtient une ressource de connexion.

getTokenStatus(TurnContext, string, string, any)

Récupère de façon asynchrone l’état du jeton pour chaque connexion configurée pour l’utilisateur donné. Dans testAdapter, récupère les jetons qui ont été précédemment ajoutés via addUserToken.

getUserToken(TurnContext, string, string)

Récupère le jeton OAuth pour un utilisateur qui se trouve dans un flux de connexion.

makeActivity(string)

Crée une activité de message à partir du texte et du contexte conversationnel actuel.

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

Reçoit une activité et l’exécute via le pipeline d’intergiciel.

send(string | Partial<Activity>)

Envoie quelque chose au bot. Cette opération retourne une nouvelle instance TestFlow qui peut être utilisée pour ajouter des étapes supplémentaires pour inspecter les bots répondre, puis envoyer des activités supplémentaires.

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

Traite une activité de message d’un utilisateur.

signOutUser(TurnContext, string, string)

Déconnecte l’utilisateur avec le serveur de jetons.

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

Envoyez quelque chose au bot et attendez que le bot retourne avec une réponse donnée.

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

Testez une liste d’activités.

throwOnExchangeRequest(string, string, string, string)

Ajoute une instruction pour lever une exception pendant les demandes d’échange.

Méthodes héritées

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

Reprend de façon asynchrone une conversation avec un utilisateur, éventuellement après un certain temps.

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

Reprend de façon asynchrone une conversation avec un utilisateur, éventuellement après un certain temps.

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

Reprend de façon asynchrone une conversation avec un utilisateur, éventuellement après un certain temps.

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

Crée une conversation sur le canal spécifié.

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

Ajoute un intergiciel au pipeline de l’adaptateur.

Détails du constructeur

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

Crée une instance TestAdapter.

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

Paramètres

logicOrConversation

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

Logique des bots qui est en cours de test.

template

Partial<Activity>

(Facultatif) activité contenant les valeurs par défaut à affecter à tous les messages de test reçus.

sendTraceActivity

boolean

Indique si l’adaptateur doit ajouter à sa file d’attente toutes les activités de trace générées par le bot.

Détails de la propriété

activeQueue

Obtient la file d’attente des réponses du bot.

activeQueue: Partial<Activity>[]

Valeur de propriété

Partial<Activity>[]

conversation

Obtient ou définit une référence à la conversation actuelle.

conversation: ConversationReference

Valeur de propriété

ConversationReference

enableTrace

Obtient une valeur indiquant s’il faut envoyer des activités de trace. Définit une valeur inidicatant s’il faut envoyer des activités de suivi.

boolean enableTrace

Valeur de propriété

boolean

Valeur indiquant s’il faut envoyer des activités de suivi.

locale

Obtient ou définit les paramètres régionaux de la conversation.

locale: string

Valeur de propriété

string

onTurnError

Obtient ou définit un gestionnaire d’erreurs qui peut intercepter des exceptions dans l’intergiciel ou l’application. Définit un gestionnaire d’erreurs qui peut intercepter des exceptions dans l’intergiciel ou l’application.

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

Valeur de propriété

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

Promesse représentant l’opération asynchrone.

Remarques

Le gestionnaire d’erreurs est appelé avec ces paramètres :

Nom Type Description
context TurnContext Objet de contexte pour le tour.
error Error Erreur Node.js levée.

template

Activity modèle qui sera fusionné avec toutes les activités envoyées à la logique testée.

template: Partial<Activity>

Valeur de propriété

Partial<Activity>

Détails de la propriété héritée

BotIdentityKey

BotIdentityKey: symbol

Valeur de propriété

symbol

héritée deBotAdapter.BotIdentityKey

ConnectorClientKey

ConnectorClientKey: symbol

Valeur de propriété

symbol

héritée deBotAdapter.ConnectorClientKey

OAuthScopeKey

OAuthScopeKey: symbol

Valeur de propriété

symbol

héritée deBotAdapter.OAuthScopeKey

Détails de la méthode

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

Ajoute un jeton échangeable factice afin qu’il puisse être échangé ultérieurement.

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

Paramètres

connectionName

string

Nom de la connexion d’authentification à utiliser.

channelId

string

ID de canal.

userId

string

Identifiant.

exchangeableItem

string

Jeton exchangeable ou URI de ressource.

token

string

Jeton à stocker.

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

Ajoute un jeton d’utilisateur factice afin qu’il puisse être récupéré ultérieurement.

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

Paramètres

connectionName

string

Nom de la connexion.

channelId

string

ID de canal.

userId

string

ID d’utilisateur.

token

string

Jeton à stocker.

magicCode

string

(Facultatif) Code magique facultatif à associer à ce jeton.

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

Le TestAdapter n’implémente pas continueConversation() et retourne une erreur si elle est appelée.

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

Paramètres

_reference

Partial<ConversationReference>

Référence à la conversation pour continuer.

_logic

(revocableContext: TurnContext) => Promise<void>

Méthode asynchrone à appeler après l’exécution du middleware de l’adaptateur.

Retours

Promise<void>

Promesse représentant l’opération asynchrone.

createConversation(string, string, string)

Créez une conversationReference.

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

Paramètres

name

string

nom de la conversation (également id).

user

string

nom de l’utilisateur (également id) par défaut : User1.

bot

string

nom du bot (également id) par défaut : Bot.

Retours

ConversationReference

ConversationReference.

exchangeToken(TurnContext, string, string, TokenExchangeRequest)

Effectue une opération d’échange de jetons telle que pour l’authentification unique.

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

Paramètres

context
TurnContext

(xref :botbuilder-core. TurnContext) pour le tour de conversation actuel avec l’utilisateur.

connectionName

string

Nom de la connexion d’authentification à utiliser.

userId

string

ID d’utilisateur associé au jeton.

tokenExchangeRequest

TokenExchangeRequest

Détails de la demande Exchange, un jeton à échanger ou un URI à échanger.

Retours

Promise<TokenResponse>

Si la promesse est terminée, le jeton échangé est retourné.

getAadTokens(TurnContext, string, string[])

Déconnecte l’utilisateur avec le serveur de jetons.

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

Paramètres

_context
TurnContext

Contexte pour le tour de conversation actuel avec l’utilisateur.

_connectionName

string

Nom de la connexion d’authentification à utiliser.

_resourceUrls

string[]

Liste des URL de ressource pour laquelle récupérer des jetons.

Retours

Promise<[key: string]: TokenResponse>

Dictionnaire de resourceUrl correspondant à TokenResponse.

getNextReply()

Dequeues et retourne la réponse du bot suivant à partir de l’activeQueue.

function getNextReply(): Partial<Activity>

Retours

Partial<Activity>

Activité suivante dans la file d’attente ; ou non défini, si la file d’attente est vide.

Obtient un lien de connexion à partir du serveur de jetons qui peut être envoyé dans le cadre d’une carte SigninCard.

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

Paramètres

context
TurnContext

Contexte pour le tour de conversation actuel avec l’utilisateur.

connectionName

string

Nom de la connexion d’authentification à utiliser.

Retours

Promise<string>

Lien de connexion à partir du serveur de jetons qui peut être envoyé dans le cadre d’une carte SigninCard.

getSignInResource(TurnContext, string, string, string)

Obtient une ressource de connexion.

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

Paramètres

context
TurnContext

(xref :botbuilder-core. TurnContext) pour le tour de conversation actuel avec l’utilisateur.

connectionName

string

Nom de la connexion d’authentification à utiliser.

userId

string

Identifiant

_finalRedirect

string

URL de redirection finale.

Retours

Promise<SignInUrlResponse>

Un Promise avec un nouvel objet SignInUrlResponse.

getTokenStatus(TurnContext, string, string, any)

Récupère de façon asynchrone l’état du jeton pour chaque connexion configurée pour l’utilisateur donné. Dans testAdapter, récupère les jetons qui ont été précédemment ajoutés via addUserToken.

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

Paramètres

context
TurnContext

Objet de contexte pour le tour.

userId

string

ID de l’utilisateur pour lequel récupérer l’état du jeton.

includeFilter

string

Optionnel. Liste séparée par des virgules des connexions à inclure. Si elle est présente, le paramètre includeFilter limite les jetons retournés par cette méthode.

_oAuthAppCredentials

any

AppCredentials pour OAuth.

Retours

Promise<any[]>

Les objets TokenStatus récupérés.

getUserToken(TurnContext, string, string)

Récupère le jeton OAuth pour un utilisateur qui se trouve dans un flux de connexion.

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

Paramètres

context
TurnContext

Contexte pour le tour de conversation actuel avec l’utilisateur.

connectionName

string

Nom de la connexion d’authentification à utiliser.

magicCode

string

(Facultatif) Un utilisateur facultatif a entré du code pour valider.

Retours

Promise<TokenResponse>

Jeton OAuth pour un utilisateur qui se trouve dans un flux de connexion.

makeActivity(string)

Crée une activité de message à partir du texte et du contexte conversationnel actuel.

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

Paramètres

text

string

Texte du message.

Retours

Partial<Activity>

Activité de message appropriée.

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

Reçoit une activité et l’exécute via le pipeline d’intergiciel.

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

Paramètres

activity

string | Partial<Activity>

Activité à traiter.

callback

(context: TurnContext) => Promise<any>

Logique du bot à appeler.

Retours

Promise<any>

Promesse représentant l’opération asynchrone.

send(string | Partial<Activity>)

Envoie quelque chose au bot. Cette opération retourne une nouvelle instance TestFlow qui peut être utilisée pour ajouter des étapes supplémentaires pour inspecter les bots répondre, puis envoyer des activités supplémentaires.

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

Paramètres

userSays

string | Partial<Activity>

Texte ou activité qui simule l’entrée utilisateur.

Retours

une nouvelle instance TestFlow qui peut être utilisée pour ajouter des étapes supplémentaires pour inspecter les bots répondre, puis envoyer des activités supplémentaires.

Remarques

Cet exemple montre comment envoyer un message, puis vérifier que la réponse était comme prévu :

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

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

Traite une activité de message d’un utilisateur.

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

Paramètres

userSays

string

Texte du message de l’utilisateur.

callback

(context: TurnContext) => Promise<any>

Logique du bot à appeler.

Retours

Promise<any>

Promesse représentant l’opération asynchrone.

signOutUser(TurnContext, string, string)

Déconnecte l’utilisateur avec le serveur de jetons.

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

Paramètres

context
TurnContext

Contexte pour le tour de conversation actuel avec l’utilisateur.

connectionName

string

Nom de la connexion d’authentification à utiliser.

userId

string

ID d’utilisateur à déconnecter.

Retours

Promise<void>

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

Envoyez quelque chose au bot et attendez que le bot retourne avec une réponse donnée.

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

Paramètres

userSays

string | Partial<Activity>

Texte ou activité qui simule l’entrée utilisateur.

expected

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

Texte ou activité attendu de la réponse envoyée par le bot.

description

string

(Facultatif) Description du cas de test. S’il n’en est pas fourni, un sera généré.

_timeout

number

(Facultatif) nombre de millisecondes à attendre pour une réponse du bot. La valeur par défaut est 3000.

Retours

Nouvel objet TestFlow qui ajoute cet échange à l’échange modélisé.

Remarques

Il s’agit simplement d’un wrapper autour des appels à send() et assertReply(). Il s’agit d’un modèle si courant qu’un assistance est fourni.

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

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

Testez une liste d’activités.

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

Paramètres

activities

Partial<Activity>[]

Tableau d’activités.

description

string

(Facultatif) Description du cas de test. S’il n’en est pas fourni, un sera généré.

timeout

number

(Facultatif) nombre de millisecondes à attendre pour une réponse du bot. La valeur par défaut est 3000.

Retours

Nouvel objet TestFlow qui ajoute cet échange à l’échange modélisé.

Remarques

Chaque activité avec le rôle « bot » sera traitée avec assertReply() et toutes les autres activités seront traitées en tant que message utilisateur avec send().

throwOnExchangeRequest(string, string, string, string)

Ajoute une instruction pour lever une exception pendant les demandes d’échange.

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

Paramètres

connectionName

string

Nom de la connexion.

channelId

string

ID de canal.

userId

string

ID d’utilisateur.

exchangeableItem

string

Jeton ou URI de ressource échangeable.

Détails de la méthode héritée

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

Reprend de façon asynchrone une conversation avec un utilisateur, éventuellement après un certain temps.

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

Paramètres

claimsIdentity

ClaimsIdentity

ClaimsIdentity pour la conversation.

reference

Partial<ConversationReference>

Une ConversationReference partielle à la conversation pour continuer.

logic

(context: TurnContext) => Promise<void>

Méthode asynchrone à appeler après l’exécution du middleware de l’adaptateur.

Retours

Promise<void>

une promesse représentant l’opération asynchrone

héritée deBotAdapter.continueConversationAsync

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

Reprend de façon asynchrone une conversation avec un utilisateur, éventuellement après un certain temps.

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

Paramètres

claimsIdentity

ClaimsIdentity

ClaimsIdentity pour la conversation.

reference

Partial<ConversationReference>

Une ConversationReference partielle à la conversation pour continuer.

audience

string

Valeur indiquant le destinataire du message proactif.

logic

(context: TurnContext) => Promise<void>

Méthode asynchrone à appeler après l’exécution du middleware de l’adaptateur.

Retours

Promise<void>

une promesse représentant l’opération asynchrone

héritée deBotAdapter.continueConversationAsync

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

Reprend de façon asynchrone une conversation avec un utilisateur, éventuellement après un certain temps.

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

Paramètres

botAppId

string

ID d’application du bot. Ce paramètre est ignoré dans un seul locataire, les adaptateurs (console, test, etc.), mais il est essentiel pour BotFrameworkAdapter, qui prend en charge plusieurs locataires.

reference

Partial<ConversationReference>

Une ConversationReference partielle à la conversation pour continuer.

logic

(context: TurnContext) => Promise<void>

Méthode asynchrone à appeler après l’exécution du middleware de l’adaptateur.

Retours

Promise<void>

une promesse représentant l’opération asynchrone

héritée deBotAdapter.continueConversationAsync

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

Crée une conversation sur le canal spécifié.

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

Paramètres

_botAppId

string

ID d’application du bot.

_channelId

string

ID du canal.

_serviceUrl

string

ID du canal.

_audience

string

Public du connecteur.

_conversationParameters

ConversationParameters

Informations de conversation à utiliser pour créer la conversation

_logic

(context: TurnContext) => Promise<void>

Méthode à appeler pour le tour de bot résultant.

Retours

Promise<void>

Promesse qui représente l’opération asynchrone

Remarques

Pour démarrer une conversation, votre bot doit connaître ses informations de compte et les informations de compte de l’utilisateur sur ce canal. La plupart des _channels prennent uniquement en charge le lancement d’une conversation de message direct (non-groupe).

L’adaptateur tente de créer une conversation sur le canal, puis envoie une activité conversationUpdate via son pipeline d’intergiciels à la méthode logique.

Si la conversation est établie avec les utilisateurs spécifiés, l’ID de la converstion de l’activité contient l’ID de la nouvelle conversation.

héritée deBotAdapter.createConversationAsync

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

Ajoute un intergiciel au pipeline de l’adaptateur.

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

Paramètres

middlewares

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

Les gestionnaires d’intergiciels ou d’intergiciels à ajouter.

Retours

this

Objet adaptateur mis à jour.

Remarques

L’intergiciel est ajouté à l’adaptateur au moment de l’initialisation. Chaque tour, l’adaptateur appelle son intergiciel dans l’ordre dans lequel vous l’avez ajouté.

héritée deBotAdapter.use