System.IO.Abstractions用法

Gab*_*aby 0 c# io file-io unit-testing

我正在使用System.IO.Abstractions编写一些单元测试,遵循GitHub中的示例代码并且卡在这里:

fileSystem: new FileSystem() //use default implementation which calls System.IO
Run Code Online (Sandbox Code Playgroud)

这行是为了初始化System.IO.FileSystem,但该类不存在...你知道它是否已被弃用或者我是否错了?

谢谢!

小智 5

是的,在生产代码中,你应该注入一个实例System.IO.Abstractions.FileSystem.在您的测试代码中的一个实例System.IO.Abstractions.TestingHelpers.MockFileSystem.

  • 对未来读者的澄清:由于它们是抽象的,因此您插入的类型应该无关紧要。换句话说,您当然可以插入“常规”文件系统的实例。但是您的生产代码当然应该接受 System.IO.Abstractions.FileSystem dll 中的类作为参数,而不是“常规”文件系统类。 (2认同)