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());
Конструкторы
Test |
Создает новый экземпляр TestAdapter. |
Свойства
active |
Возвращает очередь ответов бота. |
conversation | Возвращает или задает ссылку на текущую беседу. |
enable |
Возвращает значение, указывающее, следует ли отправлять действия трассировки. Задает значение, указывающее, следует ли отправлять действия трассировки. |
locale | Возвращает или задает языковой стандарт для беседы. |
on |
Возвращает или задает обработчик ошибок, который может перехватывать исключения в по промежуточном слоях или приложении. Задает обработчик ошибок, который может перехватывать исключения в по промежуточном слоях или приложении. |
template |
|
Унаследованные свойства
Bot |
|
Connector |
|
OAuth |
Методы
add |
Добавляет поддельный обменный токен, чтобы его можно было обменять позже. |
add |
Добавляет поддельный маркер пользователя, чтобы его можно было получить позже. |
continue |
|
create |
Создайте ConversationReference. |
exchange |
Выполняет операцию обмена маркерами, например для единого входа. |
get |
Подписывает пользователя с помощью сервера токенов. |
get |
Отменяет и возвращает следующий ответ бота из activeQueue. |
get |
Возвращает ссылку для входа с сервера токенов, который можно отправить в рамках SigninCard. |
get |
Возвращает ресурс входа. |
get |
Асинхронно извлекает состояние маркера для каждого настроенного подключения для данного пользователя. В testAdapter извлекает маркеры, которые ранее были добавлены с помощью addUserToken. |
get |
Извлекает маркер OAuth для пользователя, который находится в потоке входа. |
make |
Создает действие сообщения из текста и текущего контекста беседы. |
process |
Получает действие и выполняет его через конвейер ПО промежуточного слоя. |
send(string | Partial<Activity>) | Отправляет что-то боту. Это возвращает новый экземпляр |
send |
Обрабатывает действие сообщения от пользователя. |
sign |
Подписывает пользователя с помощью сервера токенов. |
test(string | Partial<Activity>, string | Partial<Activity> | (activity: Partial<Activity>, description?: string) => void, string, number) | Отправьте что-то боту и ожидает, что бот возвращается с заданным ответом. |
test |
Проверьте список действий. |
throw |
Добавляет инструкцию для создания исключения во время запросов exchange. |
Наследуемые методы
continue |
Асинхронно возобновляет беседу с пользователем, возможно, через некоторое время. |
continue |
Асинхронно возобновляет беседу с пользователем, возможно, через некоторое время. |
continue |
Асинхронно возобновляет беседу с пользователем, возможно, через некоторое время. |
create |
Создает беседу на указанном канале. |
use((context: Turn |
Добавляет ПО промежуточного слоя в конвейер адаптера. |
Сведения о конструкторе
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
ConnectorClientKey
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
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>
Следующее действие в очереди; или не определено, если очередь пуста.
getSignInLink(TurnContext, string)
Возвращает ссылку для входа с сервера токенов, который можно отправить в рамках 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[]>
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>
Параметры
- 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>
Параметры
- 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