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

标签 perl unit-testing filesystems mocking

有没有一种方法或模块可以让我模拟用于 Perl 单元测试的假文件系统?

我用各种Test::*Test::Mock*单元测试中的模块,但偶尔我希望能够伪造文件系统。一个简单的例子(和最低要求)是伪造 -r 的结果。或 -f文件测试运算符,这样当我调用执行文件测试的对象或模块时,我可以更轻松地控制结果。

我知道有很多方法可以解决这个问题,例如创建临时文件或将文件测试包装在它们自己的函数中,然后可以对其进行模拟,但有时如果我能让 Perl 对我撒谎就好了...因此不需要建议重写正在测试的代码的解决方案;-)

更新:

刚刚找到并阅读后this SO question ,重写代码以使其更具可测试性看起来是更明智的选择。尽管如此,手指交叉...

最佳答案

这些值得一看:Filesys::Virtual
Filesys::Virtual::Async .我用过第一个。与 Path::Class 混合和 File::Temp简洁优雅地完成各种自清洁工作是很容易的。 Test::Virtual::Filesystem看起来也很有趣。

关于perl - 用于 Perl 单元测试的模拟文件系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6679266/

相关文章:

c# - 你如何为单元测试最小化一个类

linux -/var/www 下的文件在 Ubuntu 14.04 上不区分大小写

php - ASCII "../"是唯一指示 PHP 中目录遍历的字节序列吗?

powershell - 根据子文件夹的上次修改日期对文件夹进行排序

perl - 如何使用 Perl 在 Gitlab 中创建问题

.net - NUnit,断言失败后是否可以继续执行测试?

perl - Parse::RecDescent 语法没有按预期工作

javascript - Jasmine 测试子类对象是否已通过 Knockout 订阅调用

perl - 如何在 Catalyst 应用程序的 Template Tookit 模板中定义常量?

javascript - WWW::Mechanize::Firefox 单击某个类的所有图像