Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么不是';t我的JUnit测试文件';生活在起作用吗?_Java_File_Junit - Fatal编程技术网

Java 为什么不是';t我的JUnit测试文件';生活在起作用吗?

Java 为什么不是';t我的JUnit测试文件';生活在起作用吗?,java,file,junit,Java,File,Junit,我有一个创建或重写Json文件的方法。 尽管文件在目录中可见,但我现在编写的测试方法无法确定该文件是否存在 file.exists()是如何被错误地实现的,或者什么是可行的替代方案?当我自己测试这个函数时,该函数似乎如我所期望的那样工作 如果somefile.txt不存在,则测试应该失败,但是如果确实存在,则测试通过 只是为了弄清构造函数和.exists()的作用: 这只是创建一个新的文件实例,一个抽象路径名,而不是实际的文件 File file = new File("somefile.txt

我有一个创建或重写Json文件的方法。 尽管文件在目录中可见,但我现在编写的测试方法无法确定该文件是否存在


file.exists()是如何被错误地实现的,或者什么是可行的替代方案?

当我自己测试这个函数时,该函数似乎如我所期望的那样工作

如果somefile.txt不存在,则测试应该失败,但是如果确实存在,则测试通过

只是为了弄清构造函数和.exists()的作用:

这只是创建一个新的文件实例,一个抽象路径名,而不是实际的文件

File file = new File("somefile.txt");
javadoc说得最好:

测试此抽象路径名表示的文件或目录 存在

如果此测试仍然失败,我建议添加

file.exists()

这将返回一个绝对路径字符串,如果该文件存在,它将位于该文件所在的位置。

当我自己测试该文件时,该函数似乎按照我的预期工作

如果somefile.txt不存在,则测试应该失败,但是如果确实存在,则测试通过

只是为了弄清构造函数和.exists()的作用:

这只是创建一个新的文件实例,一个抽象路径名,而不是实际的文件

File file = new File("somefile.txt");
javadoc说得最好:

测试此抽象路径名表示的文件或目录 存在

如果此测试仍然失败,我建议添加

file.exists()

这将返回一个字符串,其中包含该文件存在时的绝对路径。

您的问题不是关于单元测试,而是关于如何在Java中访问该文件

访问文件的方式:

file.getAbsoluteFile()
该文件必须与包含测试的Java源文件位于文件系统上的同一文件夹中


仅供记录:

单元测试不访问文件系统(或任何其他昂贵的资源)

在UnitTest中,您可以使用Mockito、JMock(-it)或类似的模拟框架来模拟这些资源(或使用它们的类)

此外,您不测试第三方类(如
java.io.File
)。测试您的类,以及它们如何与此依赖项通信:

File file = new File("somefile.txt");

您的问题不是关于单元测试,而是关于如何在Java中访问文件

访问文件的方式:

file.getAbsoluteFile()
该文件必须与包含测试的Java源文件位于文件系统上的同一文件夹中


仅供记录:

单元测试不访问文件系统(或任何其他昂贵的资源)

在UnitTest中,您可以使用Mockito、JMock(-it)或类似的模拟框架来模拟这些资源(或使用它们的类)

此外,您不测试第三方类(如
java.io.File
)。测试您的类,以及它们如何与此依赖项通信:

File file = new File("somefile.txt");

可能没有在您认为的目录中搜索该文件,请尝试打印
file.getAbsolutePath()
。您只需检查
assertTrue(file.exists())
assertTrue和getAbsolutePath文件组合解决的问题的可能重复项意外存储在中。idea/Modules可能未在您认为的目录中搜索该文件,请尝试打印
File.getAbsolutePath()
。您只需检查
assertTrue(File.exists())
assertTrue和getAbsolutePath文件组合解决的问题的可能重复项意外存储在.idea/modules中