【问题标题】:Unable to create a file and assert its existance无法创建文件并断言其存在
【发布时间】:2018-02-03 05:23:44
【问题描述】:

我正在使用 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());

【问题讨论】:

  • 这是 Java 吗?为什么第四行最后没有;
  • 可能你没有权限。

标签: java appium java-io assertions


【解决方案1】:

我能想到几个可能的解释:

  1. 您没有检查createNewFile() 调用的结果。如果文件之前不存在并且已成功创建,则返回 true。

    根据我对javadoc 的阅读,该方法应该在尝试创建文件但失败时抛出IOException。但另一方面是,如果你不测试调用的结果,你就不能确定你得到了一个新文件。

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

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

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

  5. 您可能拥有(操作系统级别)创建文件的权限,但不能测试其是否存在。 (这似乎有点牵强......但有些操作系统具有“复杂”的权限系统。)

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多