如何为 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);
    });
});

请记住,模板团队正在积极构建虚拟助手和企业机器人,因此模式可能会发生变化,但这是他们现在发布的内容:)