我正在编写一个程序,用于在文件系统中创建和编辑目录和文件。
我想写一个像
这样的测试(1)检查给定目录是否存在和
(2)在现有目录中创建一个目录。
测试此类功能的最佳方法是什么?
有没有办法伪造文件系统(例如在内存中?)或者我是否只需使用创建/检查真实目录的临时输出目录?
答案 0 :(得分:2)
您可以为文件系统交互编写包装函数,并且出于测试目的,将这些函数替换为实际未触及文件系统的函数(但它们会跟踪您的测试可以验证的打开等等)。
答案 1 :(得分:1)
如果你是单元测试,你可以编写你的类,以便它接受一个File对象。如果您的测试通过,那么您可以假设当您将其连接到实际使用它的类时,您的类将起作用。
这也可以让你用其他人提到的真实临时目的进行测试。
答案 2 :(得分:1)
如果你在谈论单元测试(例如JUnit),我会确保你可以传递一个路径到你的可测试代码(依赖注入)。然后,我将以跨平台的方式获取操作系统的临时文件夹,即使用System.getProperty("java.io.tmpdir");
。然后执行使用temp文件夹作为父文件写入文件/目录的代码,在文件/目录上执行断言,并且最佳做法是清除单元测试的tearDown()方法中的临时文件夹。