Setup UserData for unit testing

痞子三分冷 提交于 2021-02-11 08:41:24

问题


How do i setup the UserData within the context for unit testing?

        var context = new Mock<IDialogContext>();
        context.Setup(c => c.Activity).Returns(() => new Activity());
        context.Setup(c => c.UserData).Returns(() => ?);

Should i use BotData?


回答1:


Used the "DialogTestBase" class from BotBuilder tests and this worked for me.

        IBotDataBag dataBag;
        var container = Build(Options.LastWriteWinsCachingBotDataStore);
        var msg = MakeTestMessage();
        using (var scope = DialogModule.BeginLifetimeScope(container, msg))
        {
            var botData = scope.Resolve<IBotData>();
            await botData.LoadAsync(default(CancellationToken));
            dataBag = scope.Resolve<Func<IBotDataBag>>()();
        }

        var context = new Mock<IDialogContext>();
        context.Setup(c => c.UserData).Returns(() => dataBag);
        context.Object.UserData.SetValue(AppConstants.HelpType, helpType);


来源:https://stackoverflow.com/questions/43238393/setup-userdata-for-unit-testing

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!