如何为Bot Framework Node.js v4对话框编写单元测试

时间:2019-03-11 20:33:38

标签: unit-testing botframework azure-cognitive-services

我正在寻找一个示例,以为V4 SDK的机器人生成器对话框编写单元测试用例。我遇到了一个博客,但这是针对v3(https://www.microsoft.com/developerblog/2017/01/20/unit-testing-for-bot-applications/)的 如果我需要对对话框进行对话流的单元测试,是否有任何示例或模式可以遵循?我已经研究了使用新的仿真器和脚本文件的选项,但是,这更多地是关于功能流程和设计者来研究未真正测试对话框的模型。

我遇到了Test Adapter,但是试图找到如何使用本地机器人实例在页面上运行示例。

1 个答案:

答案 0 :(得分:1)

您可以找到Enterprise Bot模板的单元测试的C#和TS版本的示例。

Link to Node tests in Enterprise Bot

它是用mocha编写的,它是用于为botbuilder-js存储库本身编写单元测试的测试框架。

下面是Intro Card对话框中的Main测试之一。

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);
    });
});

请记住,模板团队正在积极构建Virtual Assistant和Enterprise Bot,因此模式可能会改变,但这就是他们现在发布的内容:)