Botframework 我如何用c#为Microsoft Bot framework V4编写一个简单的单元测试用例,因为它现在使用.netcore

Botframework 我如何用c#为Microsoft Bot framework V4编写一个简单的单元测试用例,因为它现在使用.netcore,botframework,vs-unit-testing-framework,Botframework,Vs Unit Testing Framework,我必须为BotFrameworkV4简单的echo方法编写单元测试用例,但我找不到一种模拟bot的方法。实际上我不知道从哪里开始。我已经阅读了在谷歌上找到的所有与此相关的文档,但没有一个在代码级别上进行解释。一个具体的例子会很有帮助 [TestMethod] public async Task CreatingAGoodContact() { var convoState = new ConversationState(new MemoryStorage())

我必须为BotFrameworkV4简单的echo方法编写单元测试用例,但我找不到一种模拟bot的方法。实际上我不知道从哪里开始。我已经阅读了在谷歌上找到的所有与此相关的文档,但没有一个在代码级别上进行解释。一个具体的例子会很有帮助

  [TestMethod]
    public async Task CreatingAGoodContact()
    {
        var convoState = new ConversationState(new MemoryStorage());

        var adapter = new TestAdapter()
            .Use(new AutoSaveStateMiddleware(convoState));

        var dialogState = convoState.CreateProperty<DialogState> 
                  ("dialogState");

        var dialogs = new DialogSet(dialogState);
        dialogs.Add(CreateWaterfall());

        await new TestFlow(adapter, async (turnContext, 
               cancellationToken) =>
        {
            var dc = await dialogs.CreateContextAsync(turnContext, 
                cancellationToken);

            // await dc.ContinueDialogAsync(cancellationToken);
            if (!turnContext.Responded)
            {
                await dc.BeginDialogAsync("test-waterfall", null, 
                cancellationToken);
            }

        })
        .Send("Say something to start test")
        .AssertReply("What is their first name?")
       }
[TestMethod]
创建GoodContact()的公共异步任务
{
var convorate=新会话状态(new MemoryStorage());
var adapter=newtestadapter()
.使用(新的AutoSaveState中间件(convoState));
var dialogState=convoState.CreateProperty
(“对话国”);
var dialogs=新的DialogSet(dialogState);
Add(create瀑布());
等待新的测试流(适配器、异步(turnContext、,
取消令牌)=>
{
var dc=await dialogs.CreateContextAsync(turnContext,
取消令牌);
//等待dc.ContinueDialogAsync(取消令牌);
如果(!turnContext.responsed)
{
等待dc.BeginDialogAsync(“测试瀑布”,空,
取消令牌);
}
})
.Send(“说点什么开始测试”)
.AssertReply(“他们的名字是什么?”)
}

您需要调用.StartTestAsync()来启动测试的执行