Поделиться через


TestAdapter class

Адаптер тестирования, используемый для модульных тестов. Этот адаптер можно использовать для имитации отправки сообщений от пользователя боту.

Extends

Комментарии

Следующий пример настраивает адаптер теста, а затем выполняет простой тест:

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

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

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

Конструкторы

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

Создает новый экземпляр TestAdapter.

Свойства

activeQueue

Возвращает очередь ответов бота.

conversation

Возвращает или задает ссылку на текущую беседу.

enableTrace

Возвращает значение, указывающее, следует ли отправлять действия трассировки. Задает значение, указывающее, следует ли отправлять действия трассировки.

locale

Возвращает или задает языковой стандарт для беседы.

onTurnError

Возвращает или задает обработчик ошибок, который может перехватывать исключения в по промежуточном слоях или приложении. Задает обработчик ошибок, который может перехватывать исключения в по промежуточном слоях или приложении.

template

Activity шаблон, который будет объединен со всеми действиями, отправленными в тестируемую логику.

Унаследованные свойства

BotIdentityKey
ConnectorClientKey
OAuthScopeKey

Методы

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

Добавляет поддельный обменный токен, чтобы его можно было обменять позже.

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

Добавляет поддельный маркер пользователя, чтобы его можно было получить позже.

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

TestAdapter не реализует continueConversation() и возвращает ошибку, если она вызывается.

createConversation(string, string, string)

Создайте ConversationReference.

exchangeToken(TurnContext, string, string, TokenExchangeRequest)

Выполняет операцию обмена маркерами, например для единого входа.

getAadTokens(TurnContext, string, string[])

Подписывает пользователя с помощью сервера токенов.

getNextReply()

Отменяет и возвращает следующий ответ бота из activeQueue.

getSignInLink(TurnContext, string)

Возвращает ссылку для входа с сервера токенов, который можно отправить в рамках SigninCard.

getSignInResource(TurnContext, string, string, string)

Возвращает ресурс входа.

getTokenStatus(TurnContext, string, string, any)

Асинхронно извлекает состояние маркера для каждого настроенного подключения для данного пользователя. В testAdapter извлекает маркеры, которые ранее были добавлены с помощью addUserToken.

getUserToken(TurnContext, string, string)

Извлекает маркер OAuth для пользователя, который находится в потоке входа.

makeActivity(string)

Создает действие сообщения из текста и текущего контекста беседы.

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

Получает действие и выполняет его через конвейер ПО промежуточного слоя.

send(string | Partial<Activity>)

Отправляет что-то боту. Это возвращает новый экземпляр TestFlow, который можно использовать для добавления дополнительных шагов для проверки ответа ботов, а затем отправки дополнительных действий.

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

Обрабатывает действие сообщения от пользователя.

signOutUser(TurnContext, string, string)

Подписывает пользователя с помощью сервера токенов.

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

Отправьте что-то боту и ожидает, что бот возвращается с заданным ответом.

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

Проверьте список действий.

throwOnExchangeRequest(string, string, string, string)

Добавляет инструкцию для создания исключения во время запросов exchange.

Наследуемые методы

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

Асинхронно возобновляет беседу с пользователем, возможно, через некоторое время.

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

Асинхронно возобновляет беседу с пользователем, возможно, через некоторое время.

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

Асинхронно возобновляет беседу с пользователем, возможно, через некоторое время.

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

Создает беседу на указанном канале.

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

Добавляет ПО промежуточного слоя в конвейер адаптера.

Сведения о конструкторе

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

Создает новый экземпляр TestAdapter.

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

Параметры

logicOrConversation

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

Логика ботов, тестируемая.

template

Partial<Activity>

(Необязательно) действие, содержащее значения по умолчанию для назначения всех полученных тестовых сообщений.

sendTraceActivity

boolean

Указывает, должен ли адаптер добавлять в очередь любые действия трассировки, созданные ботом.

Сведения о свойстве

activeQueue

Возвращает очередь ответов бота.

activeQueue: Partial<Activity>[]

Значение свойства

Partial<Activity>[]

conversation

Возвращает или задает ссылку на текущую беседу.

conversation: ConversationReference

Значение свойства

ConversationReference

enableTrace

Возвращает значение, указывающее, следует ли отправлять действия трассировки. Задает значение, указывающее, следует ли отправлять действия трассировки.

boolean enableTrace

Значение свойства

boolean

Значение, указывающее, следует ли отправлять действия трассировки.

locale

Возвращает или задает языковой стандарт для беседы.

locale: string

Значение свойства

string

onTurnError

Возвращает или задает обработчик ошибок, который может перехватывать исключения в по промежуточном слоях или приложении. Задает обработчик ошибок, который может перехватывать исключения в по промежуточном слоях или приложении.

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

Значение свойства

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

Обещание, представляющее асинхронную операцию.

Комментарии

Обработчик ошибок вызывается с этими параметрами:

Имя Тип Описание
context TurnContext Объект контекста для поворота.
error Error Возникает ошибка Node.js.

template

Activity шаблон, который будет объединен со всеми действиями, отправленными в тестируемую логику.

template: Partial<Activity>

Значение свойства

Partial<Activity>

Сведения об унаследованном свойстве

BotIdentityKey

BotIdentityKey: symbol

Значение свойства

symbol

унаследован отBotAdapter.BotIdentityKey

ConnectorClientKey

ConnectorClientKey: symbol

Значение свойства

symbol

унаследован отBotAdapter.ConnectorClientKey

OAuthScopeKey

OAuthScopeKey: symbol

Значение свойства

symbol

унаследован отBotAdapter.OAuthScopeKey

Сведения о методе

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

Добавляет поддельный обменный токен, чтобы его можно было обменять позже.

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

Параметры

connectionName

string

Имя используемого подключения проверки подлинности.

channelId

string

Идентификатор канала.

userId

string

Идентификатор пользователя.

exchangeableItem

string

Exchangeable token или URI ресурса.

token

string

Токен для хранения.

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

Добавляет поддельный маркер пользователя, чтобы его можно было получить позже.

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

Параметры

connectionName

string

Имя подключения.

channelId

string

Идентификатор канала.

userId

string

Идентификатор пользователя.

token

string

Маркер для хранения.

magicCode

string

(Необязательно) Необязательный магический код, связанный с этим токеном.

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

TestAdapter не реализует continueConversation() и возвращает ошибку, если она вызывается.

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

Параметры

_reference

Partial<ConversationReference>

Ссылка на беседу для продолжения.

_logic

(revocableContext: TurnContext) => Promise<void>

Асинхронный метод для вызова после запуска ПО промежуточного слоя адаптера.

Возвращаемое значение

Promise<void>

Обещание, представляющее асинхронную операцию.

createConversation(string, string, string)

Создайте ConversationReference.

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

Параметры

name

string

имя беседы (также идентификатор).

user

string

имя пользователя (также идентификатор) по умолчанию: User1.

bot

string

имя бота (также идентификатор) по умолчанию: Bot.

Возвращаемое значение

ConversationReference

ConversationReference.

exchangeToken(TurnContext, string, string, TokenExchangeRequest)

Выполняет операцию обмена маркерами, например для единого входа.

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

Параметры

context
TurnContext

(xref:botbuilder-core. TurnContext) для текущей очереди беседы с пользователем.

connectionName

string

Имя используемого подключения проверки подлинности.

userId

string

Идентификатор пользователя, связанный с маркером.

tokenExchangeRequest

TokenExchangeRequest

Сведения о запросе Exchange, маркер для обмена или URI для обмена.

Возвращаемое значение

Promise<TokenResponse>

Если обещание завершится, возвращается обменный токен.

getAadTokens(TurnContext, string, string[])

Подписывает пользователя с помощью сервера токенов.

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

Параметры

_context
TurnContext

Контекст для текущего шага беседы с пользователем.

_connectionName

string

Имя используемого подключения проверки подлинности.

_resourceUrls

string[]

Список URL-адресов ресурсов для получения маркеров.

Возвращаемое значение

Promise<[key: string]: TokenResponse>

Словарь resourceUrl для соответствующего TokenResponse.

getNextReply()

Отменяет и возвращает следующий ответ бота из activeQueue.

function getNextReply(): Partial<Activity>

Возвращаемое значение

Partial<Activity>

Следующее действие в очереди; или не определено, если очередь пуста.

Возвращает ссылку для входа с сервера токенов, который можно отправить в рамках SigninCard.

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

Параметры

context
TurnContext

Контекст для текущего шага беседы с пользователем.

connectionName

string

Имя используемого подключения проверки подлинности.

Возвращаемое значение

Promise<string>

Ссылка на вход с сервера маркеров, которую можно отправить в рамках SigninCard.

getSignInResource(TurnContext, string, string, string)

Возвращает ресурс входа.

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

Параметры

context
TurnContext

(xref:botbuilder-core. TurnContext) для текущей очереди беседы с пользователем.

connectionName

string

Имя используемого подключения проверки подлинности.

userId

string

Идентификатор пользователя

_finalRedirect

string

Окончательный URL-адрес перенаправления.

Возвращаемое значение

Promise<SignInUrlResponse>

Promise с новым объектом SignInUrlResponse.

getTokenStatus(TurnContext, string, string, any)

Асинхронно извлекает состояние маркера для каждого настроенного подключения для данного пользователя. В testAdapter извлекает маркеры, которые ранее были добавлены с помощью addUserToken.

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

Параметры

context
TurnContext

Объект контекста для поворота.

userId

string

Идентификатор пользователя, для которого требуется получить состояние маркера.

includeFilter

string

Необязательный. Список подключений, разделенных запятыми. При наличии параметр includeFilter ограничивает маркеры, возвращаемые этим методом.

_oAuthAppCredentials

any

AppCredentials для OAuth.

Возвращаемое значение

Promise<any[]>

Извлеченные объекты TokenStatus TokenStatus.

getUserToken(TurnContext, string, string)

Извлекает маркер OAuth для пользователя, который находится в потоке входа.

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

Параметры

context
TurnContext

Контекст для текущего шага беседы с пользователем.

connectionName

string

Имя используемого подключения проверки подлинности.

magicCode

string

(Необязательно) Необязательный введенный пользователем код для проверки.

Возвращаемое значение

Promise<TokenResponse>

Маркер OAuth для пользователя, который находится в потоке входа.

makeActivity(string)

Создает действие сообщения из текста и текущего контекста беседы.

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

Параметры

text

string

Текст сообщения.

Возвращаемое значение

Partial<Activity>

Соответствующее действие сообщения.

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

Получает действие и выполняет его через конвейер ПО промежуточного слоя.

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

Параметры

activity

string | Partial<Activity>

Действие для обработки.

callback

(context: TurnContext) => Promise<any>

Логика бота для вызова.

Возвращаемое значение

Promise<any>

Обещание, представляющее асинхронную операцию.

send(string | Partial<Activity>)

Отправляет что-то боту. Это возвращает новый экземпляр TestFlow, который можно использовать для добавления дополнительных шагов для проверки ответа ботов, а затем отправки дополнительных действий.

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

Параметры

userSays

string | Partial<Activity>

Текст или действие, имитация ввода пользователем.

Возвращаемое значение

новый экземпляр TestFlow, который можно использовать для добавления дополнительных шагов для проверки ответа ботов и отправки дополнительных действий.

Комментарии

В этом примере показано, как отправить сообщение, а затем убедиться, что ответ был должным образом:

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

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

Обрабатывает действие сообщения от пользователя.

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

Параметры

userSays

string

Текст сообщения пользователя.

callback

(context: TurnContext) => Promise<any>

Логика бота для вызова.

Возвращаемое значение

Promise<any>

Обещание, представляющее асинхронную операцию.

signOutUser(TurnContext, string, string)

Подписывает пользователя с помощью сервера токенов.

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

Параметры

context
TurnContext

Контекст для текущего шага беседы с пользователем.

connectionName

string

Имя используемого подключения проверки подлинности.

userId

string

Идентификатор пользователя для выхода.

Возвращаемое значение

Promise<void>

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

Отправьте что-то боту и ожидает, что бот возвращается с заданным ответом.

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

Параметры

userSays

string | Partial<Activity>

Текст или действие, имитация ввода пользователем.

expected

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

Ожидаемый текст или действие ответа, отправленного ботом.

description

string

(Необязательно) Описание тестового случая. Если он не указан, будет создан.

_timeout

number

(Необязательно) число миллисекунда, чтобы ждать ответа от бота. По умолчанию используется значение 3000.

Возвращаемое значение

Новый объект TestFlow, который добавляет этот обмен к моделиируемой обмену.

Комментарии

Это просто оболочка для вызовов send() и assertReply(). Это такой распространенный шаблон, который предоставляется вспомогательным.

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

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

Проверьте список действий.

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

Параметры

activities

Partial<Activity>[]

Массив действий.

description

string

(Необязательно) Описание тестового случая. Если он не указан, будет создан.

timeout

number

(Необязательно) число миллисекунда, чтобы ждать ответа от бота. По умолчанию используется значение 3000.

Возвращаемое значение

Новый объект TestFlow, который добавляет этот обмен к моделиируемой обмену.

Комментарии

Каждое действие с ролью "bot" будет обработано с помощью assertReply() и каждое другое действие будет обработано как сообщение пользователя с send().

throwOnExchangeRequest(string, string, string, string)

Добавляет инструкцию для создания исключения во время запросов exchange.

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

Параметры

connectionName

string

Имя подключения.

channelId

string

Идентификатор канала.

userId

string

Идентификатор пользователя.

exchangeableItem

string

Обменный токен или URI ресурса.

Сведения о наследуемом методе

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

Асинхронно возобновляет беседу с пользователем, возможно, через некоторое время.

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

Параметры

claimsIdentity

ClaimsIdentity

ClaimsIdentity для беседы.

reference

Partial<ConversationReference>

Частичный ConversationReference для продолжения беседы.

logic

(context: TurnContext) => Promise<void>

Асинхронный метод для вызова после запуска ПО промежуточного слоя адаптера.

Возвращаемое значение

Promise<void>

обещание, представляющее асинхронную операцию

унаследовано отBotAdapter.continueConversationAsync

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

Асинхронно возобновляет беседу с пользователем, возможно, через некоторое время.

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

Параметры

claimsIdentity

ClaimsIdentity

ClaimsIdentity для беседы.

reference

Partial<ConversationReference>

Частичный ConversationReference для продолжения беседы.

audience

string

Значение, указывающее получателя упреждающего сообщения.

logic

(context: TurnContext) => Promise<void>

Асинхронный метод для вызова после запуска ПО промежуточного слоя адаптера.

Возвращаемое значение

Promise<void>

обещание, представляющее асинхронную операцию

унаследовано отBotAdapter.continueConversationAsync

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

Асинхронно возобновляет беседу с пользователем, возможно, через некоторое время.

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

Параметры

botAppId

string

Идентификатор приложения бота. Этот параметр игнорируется в одном клиенте адаптеров (консоль, тест и т. д.), но имеет решающее значение для BotFrameworkAdapter, который является мультитенантным.

reference

Partial<ConversationReference>

Частичный ConversationReference для продолжения беседы.

logic

(context: TurnContext) => Promise<void>

Асинхронный метод для вызова после запуска ПО промежуточного слоя адаптера.

Возвращаемое значение

Promise<void>

обещание, представляющее асинхронную операцию

унаследовано отBotAdapter.continueConversationAsync

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

Создает беседу на указанном канале.

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

Параметры

_botAppId

string

Идентификатор приложения бота.

_channelId

string

Идентификатор канала.

_serviceUrl

string

Идентификатор канала.

_audience

string

Аудитория соединителя.

_conversationParameters

ConversationParameters

Сведения о беседе, используемые для создания беседы

_logic

(context: TurnContext) => Promise<void>

Метод для вызова результирующего бота.

Возвращаемое значение

Promise<void>

Обещание, представляющее асинхронную операцию

Комментарии

Чтобы начать беседу, бот должен знать сведения о своей учетной записи и сведения об учетной записи пользователя в этом канале. Большинство _channels поддерживают только прямую беседу (негрупповую).

Адаптер пытается создать новую беседу в канале, а затем отправляет действие conversationUpdate через конвейер по промежуточному слоя в метод логики.

Если беседа установлена с указанными пользователями, идентификатор беседы действия будет содержать идентификатор нового диалога.

унаследован отBotAdapter.createConversationAsync

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

Добавляет ПО промежуточного слоя в конвейер адаптера.

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

Параметры

middlewares

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

Добавленные обработчики ПО промежуточного слоя или ПО промежуточного слоя.

Возвращаемое значение

this

Обновленный объект адаптера.

Комментарии

ПО промежуточного слоя добавляется в адаптер во время инициализации. Каждый поворот адаптер вызывает его ПО промежуточного слоя в том порядке, в котором вы добавили его.

унаследовано отBotAdapter.use