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 |
方法
assert |
生成一个断言,即轮次处理逻辑未按预期从机器人生成回复。 |
assert |
如果机器人响应与预期的文本/活动不匹配,则生成断言。 |
assert |
如果机器人响应不是候选字符串之一,则生成断言。 |
catch((reason: any) => void) | 将 |
delay(number) | 在继续之前插入延迟。 |
finally(() => void) | 添加 finally 子句。 请注意,之后无法继续链接。 |
send(string | Partial<Activity>) | 向机器人发送内容。 |
send |
创建聊天更新活动并处理活动。 |
start |
启动测试序列,返回要等待的承诺。 |
test(string | Partial<Activity>, string | Partial<Activity> | (activity: Partial<Activity>, description?: string) => void, string, number) | 向机器人发送某些内容,并期望机器人使用给定的答复返回。 这只是对 |
then(() => void, (err: any) => void) | 将 |
属性详细信息
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()
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 对象,该对象将此交换追加到建模的交换中。