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 |
미들웨어 또는 애플리케이션에서 예외를 catch할 수 있는 오류 처리기를 가져오거나 설정합니다. 미들웨어 또는 애플리케이션에서 예외를 catch할 수 있는 오류 처리기를 설정합니다. |
| 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
미들웨어 또는 애플리케이션에서 예외를 catch할 수 있는 오류 처리기를 가져오거나 설정합니다. 미들웨어 또는 애플리케이션에서 예외를 catch할 수 있는 오류 처리기를 설정합니다.
(context: TurnContext, error: Error) => Promise<void> onTurnError
속성 값
(context: TurnContext, error: Error) => Promise<void>
비동기 작업을 나타내는 프라미스입니다.
설명
오류 처리기는 다음 매개 변수를 사용하여 호출됩니다.
| 이름 | 형 | 묘사 |
|---|---|---|
context |
TurnContext | 순서에 대한 컨텍스트 개체입니다. |
error |
Error |
throw된 Node.js 오류입니다. |
template
테스트 중인 논리로 전송된 모든 활동과 병합될 Activity 템플릿입니다.
template: Partial<Activity>
속성 값
Partial<Activity>
상속된 속성 세부 정보
BotIdentityKey
BotIdentityKey: symbol
속성 값
symbol
ConnectorClientKey
ConnectorClientKey: symbol
속성 값
symbol
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>
비동기 작업을 나타내는 프라미스입니다.
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)입니다.
반환
ConversationReference
exchangeToken(TurnContext, string, string, TokenExchangeRequest)
Single Sign-On과 같은 토큰 교환 작업을 수행합니다.
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
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>
해당 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>
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>
비동기 작업을 나타내는 프라미스입니다.
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
로그아웃할 사용자 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 개체입니다.
설명
"봇" 역할이 있는 각 작업은 assertReply()로 처리되고 다른 모든 활동은 send()를 사용하여 사용자 메시지로 처리됩니다.
throwOnExchangeRequest(string, string, string, string)
교환 요청 중에 예외를 throw하는 명령을 추가합니다.
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>
대화에 대한 부분 ConversationReference 계속합니다.
- logic
-
(context: TurnContext) => Promise<void>
어댑터 미들웨어가 실행된 후 호출할 비동기 메서드입니다.
반환
Promise<void>
비동기 작업을 나타내는 promise
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>
비동기 작업을 나타내는 promise
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>
대화에 대한 부분 ConversationReference 계속합니다.
- logic
-
(context: TurnContext) => Promise<void>
어댑터 미들웨어가 실행된 후 호출할 비동기 메서드입니다.
반환
Promise<void>
비동기 작업을 나타내는 promise
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>
비동기 작업을 나타내는 프라미스
설명
대화를 시작하려면 봇이 해당 채널의 계정 정보와 사용자의 계정 정보를 알고 있어야 합니다. 대부분의 _channels 직접 메시지(비그룹) 대화 시작만 지원합니다.
어댑터는 채널에서 새 대화를 만든 다음 미들웨어 파이프라인을 통해 conversationUpdate 작업을 논리 메서드로 보냅니다.
지정된 사용자와 대화가 설정되면 활동 대화의 ID에 새 대화의 ID가 포함됩니다.
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
업데이트된 어댑터 개체입니다.
설명
미들웨어는 초기화 시 어댑터에 추가됩니다. 각 턴에서 어댑터는 추가한 순서대로 미들웨어를 호출합니다.