便携式(Linux / MacOS / Windows)FIle对象的文件/目录路径无效

时间:2013-01-29 23:05:21

标签: java unit-testing filepath

我一直在尝试设计一个文件路径,如果可能的话,使用以下代码在Linux / MacOS / Windows上创建Java无法创建的文件名:

File directory = new Directory(dir);
directory.mkdirs(); // should always fail and not affect an existing file/dir

File file = new File(dir, filename);
file.createNewFile(); // should always fail and not affect an existing file/dir

这种路径将用于单元测试,以证明正确处理某些错误条件假设测试正在以root运行(它们不是,但我想关注无效路径副权限)。到目前为止,我尝试过的所有内容都将在一个平台(通常是Windows)上失败,而在另一个平台上失败(通常是Linux)。

建议?

PS。我知道模拟对象,PowerMock等等,但实际上只是想让Java的as-is File类无法创建目录/文件。

1 个答案:

答案 0 :(得分:0)

许多原因导致文件名在Linux中非法(在iOS中可能类似),完全在Windows中不同。你想检查什么?如果您尝试处理Java函数的非法名称,它们将失败。如果这是你想要捕获的东西,那么为每个人制作一个非法的名称(条件并非如此简单)。如果你想检查你的代码是否捕获了这个,我只是将问题推迟到较低级别:尝试创建;如果它失败了,抱怨。

如果您想知道每个系统的名称是非法的,请更好地专门询问。