无法创建文件并声明其存在

时间:2018-02-03 05:23:44

标签: java appium java-io assertions

我正在使用JAVA创建一个日志文件,但是在创建它之后,当我断言它存在时,我得到了一个java.lang.AssertionError。我必须做一些完全错误的事情,但我不知道是什么。这是代码:

File testLogFile = new File("/home/ninad/eclipse-workspace/Log.txt");

testLogFile.createNewFile();

service = builder.withLogFile(testLogFile).build();

service.start

assertTrue(testLogFile.exists());

1 个答案:

答案 0 :(得分:1)

我可以想到一些可能的解释:

  1. 您没有查看createNewFile()来电的结果。如果文件在AND成功创建之前不存在,则返回true。

    通过阅读javadoc,如果尝试创建文件并失败, 方法会抛出IOException。但另一方面,如果您不测试通话结果,则无法确定是否有新文件。

  2. 构建器或服务可能正在删除或重命名日志文件。

  3. 如果代码是多线程应用程序的一部分,则另一个线程可能已删除/重命名该文件。

  4. 该文件可能(理论上)已被其他应用程序删除/重命名。

  5. 您可能具有(操作系统级别)权限来创建文件,但不测试其存在。 (这看起来有点牵强......但是有些操作系统有"复杂的#34;权限系统。)

  6. 可能还有其他我想不到的事情。如果您提供了MCVE(包括"构建器"实现),我们可以检查。