TestFlow class

允许简单构造一系列测试的 TestAdapter 支持类。

注解

调用 adapter.send()adapter.test() 将创建新的测试流,可以使用 Fluent 语法将其他测试链接在一起。

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

const adapter = new TestAdapter(async (context) => {
   if (context.text === 'hi') {
      await context.sendActivity(`Hello World`);
   } else if (context.text === 'bye') {
      await context.sendActivity(`Goodbye`);
   }
});

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

属性

previous

方法

assertNoReply(string, number)

生成一个断言,即轮次处理逻辑未按预期从机器人生成回复。

assertReply(string | Partial<Activity> | TestActivityInspector, string, number)

如果机器人响应与预期的文本/活动不匹配,则生成断言。

assertReplyOneOf(string[], string, number)

如果机器人响应不是候选字符串之一,则生成断言。

catch((reason: any) => void)

catch() 子句添加到测试承诺链。

delay(number)

在继续之前插入延迟。

finally(() => void)

添加 finally 子句。 请注意,之后无法继续链接。

send(string | Partial<Activity>)

向机器人发送内容。

sendConversationUpdate()

创建聊天更新活动并处理活动。

startTest()

启动测试序列,返回要等待的承诺。

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

向机器人发送某些内容,并期望机器人使用给定的答复返回。 这只是对 send()assertReply()调用的包装器。 这是帮助程序提供的常见模式。

then(() => void, (err: any) => void)

then() 步骤添加到测试承诺链。

属性详细信息

previous

previous: Promise<void>

属性值

Promise<void>

方法详细信息

assertNoReply(string, number)

生成一个断言,即轮次处理逻辑未按预期从机器人生成回复。

function assertNoReply(description?: string, timeout?: number): TestFlow

参数

description

string

(可选)测试用例的说明。 如果未提供,将生成一个。

timeout

number

(可选)等待机器人响应的毫秒数。 默认值为 3000

返回

一个新的 TestFlow 对象,该对象将此交换追加到建模的交换中。

assertReply(string | Partial<Activity> | TestActivityInspector, string, number)

如果机器人响应与预期的文本/活动不匹配,则生成断言。

function assertReply(expected: string | Partial<Activity> | TestActivityInspector, description?: string, timeout?: number): TestFlow

参数

expected

string | Partial<Activity> | TestActivityInspector

机器人的预期文本或活动。 可以是使用自定义逻辑检查响应的回调。

description

string

(可选)测试用例的说明。 如果未提供,将生成一个。

timeout

number

(可选)等待机器人响应的毫秒数。 默认值为 3000

返回

一个新的 TestFlow 对象,该对象将此交换追加到建模的交换中。

assertReplyOneOf(string[], string, number)

如果机器人响应不是候选字符串之一,则生成断言。

function assertReplyOneOf(candidates: string[], description?: string, timeout?: number): TestFlow

参数

candidates

string[]

候选响应列表。

description

string

(可选)测试用例的说明。 如果未提供,将生成一个。

timeout

number

(可选)等待机器人响应的毫秒数。 默认值为 3000

返回

一个新的 TestFlow 对象,该对象将此交换追加到建模的交换中。

catch((reason: any) => void)

catch() 子句添加到测试承诺链。

function catch(onRejected?: (reason: any) => void): TestFlow

参数

onRejected

(reason: any) => void

如果测试引发了错误,则运行的代码。

返回

一个新的 TestFlow 对象,该对象将此交换追加到建模的交换中。

delay(number)

在继续之前插入延迟。

function delay(ms: number): TestFlow

参数

ms

number

ms to wait.

返回

一个新的 TestFlow 对象,该对象将此交换追加到建模的交换中。

finally(() => void)

添加 finally 子句。 请注意,之后无法继续链接。

function finally(onFinally: () => void): Promise<void>

参数

onFinally

() => void

在测试链之后运行的代码。

返回

Promise<void>

表示异步操作的 promise。

send(string | Partial<Activity>)

向机器人发送内容。

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

参数

userSays

string | Partial<Activity>

模拟用户输入的文本或活动。

返回

一个新的 TestFlow 对象,该对象将此交换追加到建模的交换中。

sendConversationUpdate()

创建聊天更新活动并处理活动。

function sendConversationUpdate(): TestFlow

返回

新的 TestFlow 对象。

startTest()

启动测试序列,返回要等待的承诺。

function startTest(): Promise<void>

返回

Promise<void>

表示异步操作的 promise。

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

向机器人发送某些内容,并期望机器人使用给定的答复返回。 这只是对 send()assertReply()调用的包装器。 这是帮助程序提供的常见模式。

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 对象,该对象将此交换追加到建模的交换中。

then(() => void, (err: any) => void)

then() 步骤添加到测试承诺链。

function then(onFulfilled?: () => void, onRejected?: (err: any) => void): TestFlow

参数

onFulfilled

() => void

测试当前通过时要运行的代码。

onRejected

(err: any) => void

如果测试引发了错误,则运行的代码。

返回

一个新的 TestFlow 对象,该对象将此交换追加到建模的交换中。