简体   繁体   English

如何模拟 ShareDirectoryClient GetFilesAndDirectoriesAsync xUnit

[英]How to mock ShareDirectoryClient GetFilesAndDirectoriesAsync xUnit

How to mock ShareDirectoryClient's GetFilesAndDirectoriesAsync function in xUnit .Net Core 5如何在 xUnit .Net Core 5 中模拟 ShareDirectoryClient 的 GetFilesAndDirectoriesAsync 函数

I am trying to mock public Mock<ShareDirectoryClient> mockShareDirectoryClient = new Mock<ShareDirectoryClient>();我正在尝试模拟public Mock<ShareDirectoryClient> mockShareDirectoryClient = new Mock<ShareDirectoryClient>();

But facing issue in creating instance of ShareFileItem.但是在创建 ShareFileItem 实例时面临问题。

Since ShareFileItem is a abstract class we can not create new instance.由于 ShareFileItem 是一个抽象类,我们无法创建新实例。

.Net core provides FilesModelFactory factory to create new instance of ShareFileItem. .Net 核心提供 FilesModelFactory 工厂来创建 ShareFileItem 的新实例。

var list = new List<ShareFileItem>();
        list.Add(FilesModelFactory.ShareFileItem(false, "SampleFileName", 1, "11"));
        list.Add(FilesModelFactory.ShareFileItem(false, "SampleDirectory", 1, "11"));

        IReadOnlyList<ShareFileItem> readOnlyList = new ReadOnlyCollection<ShareFileItem>(list);

        List<Page<ShareFileItem>> shareFileList = new List<Page<ShareFileItem>>();
        Page<ShareFileItem> item = Page<ShareFileItem>.FromValues(readOnlyList, string.Empty, null);
        shareFileList.Add(item);

        AsyncPageable<ShareFileItem> pagableList = AsyncPageable<ShareFileItem>.FromPages(shareFileList);

        mockShareDirectoryClient.Setup(s => s.GetFilesAndDirectoriesAsync(It.IsAny<ShareDirectoryGetFilesAndDirectoriesOptions>(), It.IsAny<CancellationToken>())).Returns(pagableList);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM