问题
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