我正在使用 System.IO.Abstractions 来模拟
File.OpenRead()
。 File.OpenRead()
返回 FileSystemStream
(与 System.IO
的 FileStream
相反)。
我需要给模拟方法一个
FileSystemStream
对象来返回,但我在创建一个对象时遇到了麻烦。以下尝试会产生错误。
单元测试代码:
var stream = new MemoryStream();
mockFS.Setup(x => x.File.OpenRead(dropFolderPath)).Returns(stream);
错误:
cannot convert from 'System.IO.MemoryStream' to 'System.IO.Abstraction.FileSystemStream'
MemoryStream
和其他对象的各种迭代会导致 cannot convert from 'System.IO.MemoryStream' to 'System.IO.Abstraction.FileSystemStream'
有效的是使用
System.IO.Abstraction
的 FileSystem
创建 FileSystemStream
对象。然后我有了一个可以从我的 File.OpenRead()
模拟返回的对象。
var fileSystem = new System.IO.Abstractions.FileSystem();
var stream = fileSystem.File.Create("my file path.txt");
mockFS.Setup(x => x.File.OpenRead("my file path.txt")).Returns(stream);