如何为 Bot Framework nodejs v4 对话框编写单元测试
How to write a unit tests for Bot Framework nodejs v4 dialogs
我正在寻找一个示例来为 V4 SDK 的机器人生成器对话框编写单元测试用例。我发现了一个博客,但它是针对 v3 (https://www.microsoft.com/developerblog/2017/01/20/unit-testing-for-bot-applications/)
如果我需要针对对话流对对话进行单元测试,是否有可遵循的示例或模式?我已经查看了使用新的模拟器和脚本文件的选项,但是,这更多是为了功能流程和设计人员查看未真正测试对话框的模型。
我遇到了 Test Adapter 但我试图找到如何 运行 该示例使用我的本地机器人实例形成页面。
您可以找到 Enterprise Bot 模板的单元测试的 C# 和 TS 版本示例。
Link to Node tests in Enterprise Bot
它是用 mocha 编写的,它与用于为 botbuilder-js 存储库本身编写单元测试的测试框架相同。
这是 Main
对话框中 Intro Card
测试的一小段。
describe("Intro Card", function () {
it("Send conversationUpdate and verify card is received", function (done) {
const testAdapter = botTestBase.getTestAdapter();
const flow = testAdapter
.send({
type: "conversationUpdate",
membersAdded: [
{
id: "1",
name: "Bot"
}
],
channelId: "emulator",
recipient: {
id: "1"
}
})
.assertReply(function (activity, description) {
assert.equal(activity.attachments[0].contentType, 'application/vnd.microsoft.card.adaptive');
assert.deepEqual(activity.attachments[0].content, introJson);
})
testNock.resolveWithMocks('mainDialog_introCard_response', done, flow);
});
});
请记住,模板团队正在积极构建虚拟助手和企业机器人,因此模式可能会发生变化,但这是他们现在发布的内容:)
我正在寻找一个示例来为 V4 SDK 的机器人生成器对话框编写单元测试用例。我发现了一个博客,但它是针对 v3 (https://www.microsoft.com/developerblog/2017/01/20/unit-testing-for-bot-applications/) 如果我需要针对对话流对对话进行单元测试,是否有可遵循的示例或模式?我已经查看了使用新的模拟器和脚本文件的选项,但是,这更多是为了功能流程和设计人员查看未真正测试对话框的模型。
我遇到了 Test Adapter 但我试图找到如何 运行 该示例使用我的本地机器人实例形成页面。
您可以找到 Enterprise Bot 模板的单元测试的 C# 和 TS 版本示例。
Link to Node tests in Enterprise Bot
它是用 mocha 编写的,它与用于为 botbuilder-js 存储库本身编写单元测试的测试框架相同。
这是 Main
对话框中 Intro Card
测试的一小段。
describe("Intro Card", function () {
it("Send conversationUpdate and verify card is received", function (done) {
const testAdapter = botTestBase.getTestAdapter();
const flow = testAdapter
.send({
type: "conversationUpdate",
membersAdded: [
{
id: "1",
name: "Bot"
}
],
channelId: "emulator",
recipient: {
id: "1"
}
})
.assertReply(function (activity, description) {
assert.equal(activity.attachments[0].contentType, 'application/vnd.microsoft.card.adaptive');
assert.deepEqual(activity.attachments[0].content, introJson);
})
testNock.resolveWithMocks('mainDialog_introCard_response', done, flow);
});
});
请记住,模板团队正在积极构建虚拟助手和企业机器人,因此模式可能会发生变化,但这是他们现在发布的内容:)