可能是重复问题:
如何在C#中模拟文件系统进行单元测试?
我使用Moq作为模拟框架,为我的代码编写单元测试。
我的代码包括对文件系统的调用,使用直接调用System.IO
类。例如,File.Exists(...)
等。
我想改变这段代码使其更具可测试性,因此应该有一个接口,比如说IFile
,有一个相关的方法,比如说Exists(string path)
。
我知道我可以从头开始编写它,但我想知道是否有一个完整、强大的框架,具有文件系统的接口和实现。这个(期望的)框架也可以是某种“服务”,因此它的API不必是与System.IO
命名空间的“接口等效”的。
请注意,我真的很想有接口(而不是静态方法),以便我的代码准备好进行依赖注入。
到目前为止我得到了什么:
- 在stackoverflow上曾经有一个类似但并非相同的问题。
- codeplex.com网站上有一个名为CodePlex Source Control Client(link)的项目,其中源代码中包含这些类(请参见源代码中的
/Source/TfsLibrary/Utility/
以获取具体细节)。
还有其他建议吗?