在这种情况下,我将使用物理文件来测试组件,而不依赖于模拟框架。如前所述,
fge这可能会更容易,而且您不必担心您对模拟可能做出的任何错误假设。
例如,如果您依赖
File#listFiles()您的模拟返回固定的
Files
列表,则不能保证它们的返回顺序-事实上,您可能只有在其他平台上运行代码时才能发现这一事实。
我会考虑使用JUnit的
TemporaryFolder规则来帮助您设置测试所需的文件和目录结构,例如:
public class DummyFileClassTest { @Rule public TemporaryFolder folder = new TemporaryFolder(); @Test public void someMethod() { // given final File file1 = folder.newFile("myfile1.txt"); final File file2 = folder.newFile("myfile2.txt"); ... etc... }}测试完成后,该规则应清除所有创建的文件和目录。



