用于Perl单元测试的模拟文件系统

Mik*_*ike 11 filesystems perl unit-testing mocking

是否有方法或模块允许我模拟用于Perl单元测试的伪文件系统?

我用了各种Test::*Test::Mock*模块在我的单元测试,但偶尔我希望能够伪造文件系统.一个简单的例子(和最低要求)将伪造来自-r-f文件测试操作符的结果,这样当我调用执行文件测试的对象或模块时,我可以更容易地控制结果.

我知道有各种方法来解决这个问题,例如创建临时文件或在自己的函数中包装文件测试然后可以被模拟,但有时如果我可以让Perl骗我的话会很好...所以建议重写被测试代码的解决方案不是必需的;-)

更新:

刚刚找到并阅读了这个问题之后,重写代码以使其更具可测性,看起来就像是更明智的选择.不过,手指交叉......

Ash*_*ley 6

值得一看:Filesys :: VirtualFilesys :: Virtual :: Async.我用过第一个.与Path :: ClassFile :: Temp混合使用,可以轻松,优雅地完成各种自动清洁工作.Test :: Virtual :: Filesystem看起来也很有趣.