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 |
メソッド
継承されたメソッド
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>
非同期操作を表す Promise。
注釈
エラー ハンドラーは、次のパラメーターを使用して呼び出されます。
名前 | 種類 | 形容 |
---|---|---|
context |
TurnContext の |
ターンのコンテキスト オブジェクト。 |
error |
Error |
Node.js エラーがスローされました。 |
template
Activity
テスト対象のロジックに送信されるすべてのアクティビティとマージされるテンプレートです。
template: Partial<Activity>
プロパティ値
Partial<Activity>
継承されたプロパティの詳細
BotIdentityKey
BotIdentityKey: symbol
プロパティ値
symbol
ConnectorClientKey
ConnectorClientKey: symbol
プロパティ値
symbol
botAdapter.ConnectorClientKey
OAuthScopeKey
OAuthScopeKey: symbol
プロパティ値
symbol
メソッドの詳細
addExchangeableToken(string, string, string, string, string)
後で交換できるように、偽の交換可能なトークンを追加します。
function addExchangeableToken(connectionName: string, channelId: string, userId: string, exchangeableItem: string, token: string)
パラメーター
- connectionName
-
string
使用する認証接続の名前。
- channelId
-
string
チャネル ID。
- userId
-
string
ユーザー ID。
- exchangeableItem
-
string
交換可能なトークンまたはリソース 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
チャネル ID。
- userId
-
string
ユーザー ID。
- 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>
非同期操作を表す Promise。
createConversation(string, string, string)
ConversationReference を作成します。
static function createConversation(name: string, user?: string, bot?: string): ConversationReference
パラメーター
- name
-
string
会話の名前 (ID も指定します)。
- user
-
string
ユーザーの名前 (id) の既定値: User1。
- bot
-
string
ボットの名前 (ID) の既定値: 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
トークンに関連付けられているユーザー ID。
- tokenExchangeRequest
-
TokenExchangeRequest
交換要求の詳細。交換するトークンまたは交換する URI。
戻り値
Promise<TokenResponse>
Promise が完了すると、交換されたトークンが返されます。
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>
対応する TokenResponse への resourceUrl のディクショナリ。
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
ユーザー ID
- _finalRedirect
-
string
最終的なリダイレクト URL。
戻り値
Promise<SignInUrlResponse>
新しい SignInUrlResponse オブジェクトを持つ Promise
。
getTokenStatus(TurnContext, string, string, any)
特定のユーザーに対して構成された各接続のトークンの状態を非同期的に取得します。 testAdapter では、addUserToken を使用して以前に追加されたトークンを取得します。
function getTokenStatus(context: TurnContext, userId: string, includeFilter?: string, _oAuthAppCredentials?: any): Promise<any[]>
パラメーター
- context
- TurnContext
ターンのコンテキスト オブジェクト。
- userId
-
string
トークンの状態を取得するユーザーの ID。
- includeFilter
-
string
随意。 含める接続のコンマ区切りの一覧。 存在する場合、includeFilter
パラメーターは、このメソッドが返すトークンを制限します。
- _oAuthAppCredentials
-
any
OAuth の AppCredentials。
戻り値
Promise<any[]>
取得した 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>
非同期操作を表す Promise。
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>
非同期操作を表す Promise。
signOutUser(TurnContext, string, string)
トークン サーバーを使用してユーザーをサインアウトします。
function signOutUser(context: TurnContext, connectionName?: string, userId?: string): Promise<void>
パラメーター
- context
- TurnContext
ユーザーとの会話の現在のターンのコンテキスト。
- connectionName
-
string
使用する認証接続の名前。
- userId
-
string
サインアウトするユーザー ID。
戻り値
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)
交換要求中に例外をスローする命令を追加します。
function throwOnExchangeRequest(connectionName: string, channelId: string, userId: string, exchangeableItem: string)
パラメーター
- connectionName
-
string
接続名。
- channelId
-
string
チャネル ID。
- userId
-
string
ユーザー ID。
- 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>
継続する会話に 部分的な
- logic
-
(context: TurnContext) => Promise<void>
アダプター ミドルウェアの実行後に呼び出す非同期メソッド。
戻り値
Promise<void>
非同期操作を表す Promise
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>
継続する会話に 部分的な
- audience
-
string
プロアクティブ メッセージの受信者を示す値。
- logic
-
(context: TurnContext) => Promise<void>
アダプター ミドルウェアの実行後に呼び出す非同期メソッド。
戻り値
Promise<void>
非同期操作を表す Promise
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
ボットのアプリケーション ID。 このパラメーターは、単一テナントのアダプター (コンソール、テストなど) では無視されますが、マルチテナント対応の BotFrameworkAdapter にとって重要です。
- reference
-
Partial<ConversationReference>
継続する会話に 部分的な
- logic
-
(context: TurnContext) => Promise<void>
アダプター ミドルウェアの実行後に呼び出す非同期メソッド。
戻り値
Promise<void>
非同期操作を表す Promise
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
ボットのアプリケーション ID。
- _channelId
-
string
チャネルの ID。
- _serviceUrl
-
string
チャネルの ID。
- _audience
-
string
コネクタの対象ユーザー。
- _conversationParameters
-
ConversationParameters
会話の作成に使用する会話情報
- _logic
-
(context: TurnContext) => Promise<void>
結果のボット ターンを呼び出すメソッド。
戻り値
Promise<void>
非同期操作を表す Promise
注釈
会話を開始するには、ボットがそのアカウント情報と、そのチャネルのユーザーのアカウント情報を知っている必要があります。 ほとんどの_channelsは、直接メッセージ (グループ以外) の会話の開始のみをサポートします。
アダプターは、チャネルで新しい会話を作成し、そのミドルウェア パイプラインを介して conversationUpdate
アクティビティをロジック メソッドに送信しようとします。
指定したユーザーとの会話が確立されている場合、アクティビティの会話の ID には新しい会話の ID が含まれます。
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
更新されたアダプター オブジェクト。
注釈
ミドルウェアは初期化時にアダプターに追加されます。 各ターンで、アダプターはミドルウェアを追加した順序で呼び出します。