c# - 如何模拟 ShareDirectoryClient GetFilesAndDirectoriesAsync xUnit

标签 c# mocking

如何在 xUnit .Net Core 5 中模拟 ShareDirectoryClient 的 GetFilesAndDirectoriesAsync 函数

我正在尝试 mock public Mock<ShareDirectoryClient> mockShareDirectoryClient = new Mock<ShareDirectoryClient>();

但在创建 ShareFileItem 实例时面临问题。

由于 ShareFileItem 是一个抽象类,我们无法创建新实例。

最佳答案

.Net core提供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);

关于c# - 如何模拟 ShareDirectoryClient GetFilesAndDirectoriesAsync xUnit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69754275/

相关文章:

java - Groovy Spock 模拟调用模拟类的真实方法

unit-testing - 使用模拟对象编写可维护的单元测试

c# - 在双显示器设置的同一台显示器上关闭和打开表格

C# 代码设置远程共享从其父目录继承权限

c# - 在 C# 中访问 USB 或串口

python-3.x - Python HTTP Post 方法将响应作为 magicmock 对象而不是值返回

c# - 带有 C# 内部访问修饰符的 Doxygen

c# - 异常 "The operation completed successfully"引发属性更改事件

grails - 在Grails中使用metaClass模拟 Action

java - 对于 Java 测试,我应该模拟客户端还是模拟服务器