【发布时间】:2020-11-16 06:02:38
【问题描述】:
我正在尝试模拟这个图形 API SDK 代码。
private readonly GraphServiceClient _client;
IMailFolderMessagesCollectionPage msgs = await _client.Users[userEmailAddress].MailFolders[folderNameId]
.Messages.Request().WithMaxRetry(5).WithMaxRetry(new TimeSpan(0, 0, 0, 5, 0)).Filter(emailFilter).GetAsync();
我不确定如何在一行中模拟一系列索引属性和方法。我尝试执行以下操作但不起作用。有什么建议吗?谢谢。
private Mock<IGraphServiceClient> mockGsc;
mockGsc = new Mock<IGraphServiceClient>();
mockGsc.Setup(x => x.Users[It.IsAny<string>()].MailFolders[It.IsAny<string>].Messages.Request().WithMaxRetry(It.IsAny<int>).WithMaxRetry(It.IsAny<TimeSpan>).Filter(It.IsAny<string>).GetAsync()).Returns< IMailFolderMessagesCollectionPage>();
【问题讨论】:
-
在模拟方面,只需要一种方法来进行所有图形调用并使用依赖注入来替换任意模拟。您可以保存一些真实调用的 json 响应并让您的模拟返回这些响应。它应该可以与您最喜欢的模拟/DI 框架一起正常工作,或者只是制作自定义模拟。您可以查看实际的 dot netsdk 以获取图形示例:github.com/microsoftgraph/msgraph-sdk-dotnet/tree/dev/tests/… 使用 Moq:github.com/moq/moq
-
由于答案和评论是相同的,我在这里发布这个是为了帮助任何寻找移动链接的人:github.com/microsoftgraph/msgraph-sdk-dotnet-core/tree/dev/…
标签: c# unit-testing .net-core microsoft-graph-api