【问题标题】:Mock filesystem for Perl unit testing用于 Perl 单元测试的模拟文件系统
【发布时间】:2011-10-04 11:44:24
【问题描述】:

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

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

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

更新:

在刚刚找到并阅读this SO question 之后,重写代码以使其更易于测试似乎是更明智的选择。尽管如此,手指交叉...

【问题讨论】:

    标签: perl unit-testing filesystems mocking


    【解决方案1】:

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

    【讨论】:

    • 感谢您的链接。我承认不确定我会用 Filesys::Virtual 做什么——它似乎是其他东西的基类。请您详细介绍一下您过去是如何使用它的?
    • @Mike,对不起,我真的应该链接这个:Filesys::Virtual::Plain。它更接近于开箱即用。
    • 谢谢 - 我最终也找到了,而且看起来很有可能。我还没有机会去看看,但希望能尽快去看看。
    • Test::Virtual::Filesystem 是一个为虚拟文件系统本身编写测试的模块。
    猜你喜欢
    • 1970-01-01
    • 2013-11-09
    • 2018-08-07
    • 1970-01-01
    • 2015-02-27
    • 2020-02-13
    • 1970-01-01
    • 1970-01-01
    • 2010-11-08
    相关资源
    最近更新 更多