Mik*_*ike 11 filesystems perl unit-testing mocking
是否有方法或模块允许我模拟用于Perl单元测试的伪文件系统?
我用了各种Test::*和Test::Mock*模块在我的单元测试,但偶尔我希望能够伪造文件系统.一个简单的例子(和最低要求)将伪造来自-r或-f文件测试操作符的结果,这样当我调用执行文件测试的对象或模块时,我可以更容易地控制结果.
我知道有各种方法来解决这个问题,例如创建临时文件或在自己的函数中包装文件测试然后可以被模拟,但有时如果我可以让Perl骗我的话会很好...所以建议重写被测试代码的解决方案不是必需的;-)
更新:
刚刚找到并阅读了这个问题之后,重写代码以使其更具可测性,看起来就像是更明智的选择.不过,手指交叉......
值得一看:Filesys :: Virtual和 Filesys :: Virtual :: Async.我用过第一个.与Path :: Class和File :: Temp混合使用,可以轻松,优雅地完成各种自动清洁工作.Test :: Virtual :: Filesystem看起来也很有趣.