【发布时间】:2016-01-07 16:43:54
【问题描述】:
我正在使用 Junit 进行单元测试,我想测试我创建的文件是在请求的位置创建的,在这种情况下,该位置是 tmp 文件夹。我的测试失败了,因为从 'tmpFile.getParent()' 获得的用户主目录与从 System.getProperty("user.home") 获得的用户主目录不同:
tmpFile= File.createTempFile("tmpFile", ".tmp");
String actualFolder = tmpFile.getParent();/* the tmp file directory */
String expectedFolder= System.getProperty("user.home")+"\\AppData\\Local\\Temp"
Junit 测试失败,在控制台中,我得到:
actualFolder = C:\Users\[USER_~1\]AppData\Local\Temp
expectedFolder = C:\Users\[user_000]AppData\Local\Temp>
如何获得与 'tmpFile.getParent()' 相同的用户目录语法? 提前感谢您的帮助!
【问题讨论】:
-
试试
new File(actualFolder).getAbsolutePath() -
一些注意事项:单元测试最好不要测试文件系统。但有时,你“需要”,所以这里也许是有道理的。如果是这样,您可能应该使其与文件系统无关。现在,除非您在 Windows 上,否则您的测试将失败,因为反斜杠路径。另外,我认为默认临时文件夹是特定于平台的,因此依赖它位于
"user.home"下可能会导致额外的误报(即测试失败)。