2017-04-05 83 views
1

如何在单元测试的上下文中设置UserData?单元测试的设置UserData

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

我应该使用BotData吗?

+0

的可能的复制[如何单元提示测试微软机器人对话框(http://stackoverflow.com/questions/42925624/how-to-unit-test-a-microsoft-bot-dialog -with-a-prompt) –

+0

我找不到任何测试UserData的设置和测试。我错过了吗? – dolbyarun

回答

1

从BotBuilder测试中使用“DialogTestBase”类,这对我有用。

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