有没有一个方法或模块,允许我模拟一个假文件系统用于Perl单元测试?
我在单元测试中使用了各种Test :: *和Test :: Mock *模块,但有时我想要能够伪造文件系统.一个简单的例子(和一个最低要求)将是-r或-f文件测试运算符的结果,因此当我调用执行文件测试的对象或模块时,我可以更容易地控制结果.
我知道有各种各样的方法来解决这个问题,比如创建临时文件或在自己的函数中打包文件测试,然后可以嘲笑,但是有时候,如果我可以让Perl对我说谎所以解决方案建议重写正在测试的代码是不需要的;-)
更新:
刚刚发现并阅读了this SO question之后,重写代码,使其更具可测性,看起来更合理.仍然,手指交叉…
解决方法
这些值得一看:
Filesys::Virtual和
我使用了第一个.与 Path::Class和 File::Temp混合,很容易,所以各种自洁的东西简洁而优雅. Test::Virtual::Filesystem也看起来很有趣.
我使用了第一个.与 Path::Class和 File::Temp混合,很容易,所以各种自洁的东西简洁而优雅. Test::Virtual::Filesystem也看起来很有趣.