我正在开发一个模块,它提供了导航目录和操作文件的方法。基本上它将是Dir
和File
类的组合,其中的选项特定于我正在处理的项目的需求。
现在我已开始为其中一些方法编写测试,事情变得越来越混乱。
我拥有的一种方法是tree
函数,它返回文件和文件夹的哈希值,您可以在其中传递tree(only: 'folders', limit: 3)
等选项。为了测试它只降低了3个级别,我必须有4个以上带有虚拟文件的子文件夹。
现在我正在对项目外的文件夹进行测试,因为子文件夹已经存在,但我想摆脱这一点,特别是考虑到一旦我开始测试等效于{{的方法的测试对系统文件的不可靠性1}}(以及缺乏可移植性)。
我开始认为我需要创建一个实验室老鼠"我做的所有类型文件夹"实验"在,但我不知道如何创建它。
因此...
有人通常会如何测试过多的文件和文件夹操作?
答案 0 :(得分:1)
我认为你不想使用模拟/存根。您的操作系统的文件系统应该经过充分测试并且速度很快,因此模拟/存根的好处很小。创建模拟/存根系统会增加复杂性而没有太多好处。
这是我的答案:
我是否创建了一个创建文件的功能?
是。您可以为这些函数创建测试以确保它们是正确的。而不是调用Dir
和File
,编写帮助函数,使代码简单易读。也许你可以在源/测试代码之间共享辅助函数......
我是否从其他位置提取文件和文件夹?
不知道这是为了什么......
我是否使用某种“lorem ipsum”生成器来处理文件结构?
是的,如果你的意思是创建生成文件结构的函数。
我是否手动制作所有这些文件和文件夹(呃)?
否。
我是否只是嘲笑并将所有内容存根,而不是实际创建/删除文件和文件夹?(我看不到这种情况发生)
没有。创建文件/目录的一个好处是,您可以手动检查发生了什么,而不是100%依赖于测试。这实际上是一个很好的方法,因为没有它可能会出现一个错误,源代码和测试代码都没有达到您的预期,但您不会知道,因为 似乎 强>要工作。