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()

启动测试序列,返回对 await 的承诺。

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

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

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。

返回

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

finally(() => void)

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

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

参数

onFinally

() => void

测试链后要运行的代码。

返回

Promise<void>

表示异步操作的承诺。

send(string | Partial<Activity>)

向机器人发送内容。

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

参数

userSays

string | Partial<Activity>

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

返回

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

sendConversationUpdate()

创建会话更新活动并处理活动。

function sendConversationUpdate(): TestFlow

返回

一个新的 TestFlow 对象。

startTest()

启动测试序列,返回对 await 的承诺。

function startTest(): Promise<void>

返回

Promise<void>

表示异步操作的承诺。

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

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

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