Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Ruby中测试文件复制、移动、删除操作_Ruby_Unit Testing_Tdd - Fatal编程技术网

在Ruby中测试文件复制、移动、删除操作

在Ruby中测试文件复制、移动、删除操作,ruby,unit-testing,tdd,Ruby,Unit Testing,Tdd,我正在用Ruby开发一个备份库。而且,正如您所料,备份过程中会复制、移动和删除许多文件。在我的测试中,我想确保正确的文件和文件夹从源复制到目标。测试它的最佳实践是什么?我应该在测试期间处理物理文件吗?还是模拟它更好?最好避免使用真实的文件系统进行测试(它会导致缓慢、脆弱的测试,并且会导致混乱的设置/清理)。最好用fakefsgem将其剔除。单元测试需要快速运行,以便在每次更改后可以经常运行。因此,触摸文件系统在这里不是一个选项 然后集成测试(或任何可以称之为集成测试的测试)将确保实际复制物理文件

我正在用Ruby开发一个备份库。而且,正如您所料,备份过程中会复制、移动和删除许多文件。在我的测试中,我想确保正确的文件和文件夹从源复制到目标。测试它的最佳实践是什么?我应该在测试期间处理物理文件吗?还是模拟它更好?

最好避免使用真实的文件系统进行测试(它会导致缓慢、脆弱的测试,并且会导致混乱的设置/清理)。最好用
fakefs
gem将其剔除。

单元测试需要快速运行,以便在每次更改后可以经常运行。因此,触摸文件系统在这里不是一个选项

然后集成测试(或任何可以称之为集成测试的测试)将确保实际复制物理文件。这些测试可能较慢,因为它们运行的频率较低