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
Test |
Crée une instance TestAdapter. |
Propriétés
active |
Obtient la file d’attente des réponses du bot. |
conversation | Obtient ou définit une référence à la conversation actuelle. |
enable |
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. |
on |
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 |
|
Propriétés héritées
Bot |
|
Connector |
|
OAuth |
Méthodes
add |
Ajoute un jeton échangeable factice afin qu’il puisse être échangé ultérieurement. |
add |
Ajoute un jeton d’utilisateur factice afin qu’il puisse être récupéré ultérieurement. |
continue |
Le |
create |
Créez une conversationReference. |
exchange |
Effectue une opération d’échange de jetons telle que pour l’authentification unique. |
get |
Déconnecte l’utilisateur avec le serveur de jetons. |
get |
Dequeues et retourne la réponse du bot suivant à partir de l’activeQueue. |
get |
Obtient un lien de connexion à partir du serveur de jetons qui peut être envoyé dans le cadre d’une carte SigninCard. |
get |
Obtient une ressource de connexion. |
get |
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. |
get |
Récupère le jeton OAuth pour un utilisateur qui se trouve dans un flux de connexion. |
make |
Crée une activité de message à partir du texte et du contexte conversationnel actuel. |
process |
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 |
send |
Traite une activité de message d’un utilisateur. |
sign |
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. |
test |
Testez une liste d’activités. |
throw |
Ajoute une instruction pour lever une exception pendant les demandes d’échange. |
Méthodes héritées
continue |
Reprend de façon asynchrone une conversation avec un utilisateur, éventuellement après un certain temps. |
continue |
Reprend de façon asynchrone une conversation avec un utilisateur, éventuellement après un certain temps. |
continue |
Reprend de façon asynchrone une conversation avec un utilisateur, éventuellement après un certain temps. |
create |
Crée une conversation sur le canal spécifié. |
use((context: Turn |
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
ConnectorClientKey
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
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.
getSignInLink(TurnContext, string)
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