模拟文件系统

the*_*per 9 .net unit-testing typemock

如果我的单元测试依赖于文件系统并且我需要模拟这个,那么最好的方法是什么?

谢谢

Mar*_*ann 9

文件系统是TDD如何推动您实现更好,更灵活设计的绝佳示例.通常,当您与文件系统交互时,您可以使用StreamsTextWriters而不是实际文件来处理读取和写入文件.

这些都是抽象类型,所以很容易模拟.

现在您有一个更灵活的API,因为它没有与文件系统紧密耦合,但仍支持文件操作.

  • +1,使用流是很好的,因为你可以与各种输入/输出设备保持兼容. (3认同)

Ant*_*lev 3

您基本上有两个选择:要么抽象 背后的所有文件系统相关逻辑IFileSystemService,要么使用Microsoft 的Stubs ,这是

...提供测试存根的 .NET 轻量级框架。对于接口和非密封类,会生成类型安全的包装器,可以通过附加委托轻松定制这些包装器。