Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.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 在JUnit、AppEngine中设置相对文件路径的根_Java_Google App Engine_Junit - Fatal编程技术网

Java 在JUnit、AppEngine中设置相对文件路径的根

Java 在JUnit、AppEngine中设置相对文件路径的根,java,google-app-engine,junit,Java,Google App Engine,Junit,我有一些引用文件名的代码。在服务器上,此引用相对于我的war目录。但是,当我运行测试时,似乎没有设置相对根目录-只有从本地HD根目录开始的绝对路径才能找到文件 我正在AppEngineLocalServiceTestHelper的上下文中进行测试,它在getAppDir方法中返回我的war目录,但代码仍然无法理解相对路径 如何在JUnit测试中设置相对文件名的根?对于我的单元测试,我创建了一个名为的实用程序类(参见代码)。它通过查找类路径来查找文件。如果您关心的文件位于类路径中,那么这种方法非常

我有一些引用文件名的代码。在服务器上,此引用相对于我的
war
目录。但是,当我运行测试时,似乎没有设置相对根目录-只有从本地HD根目录开始的绝对路径才能找到文件

我正在AppEngine
LocalServiceTestHelper
的上下文中进行测试,它在
getAppDir
方法中返回我的war目录,但代码仍然无法理解相对路径


如何在JUnit测试中设置相对文件名的根?

对于我的单元测试,我创建了一个名为的实用程序类(参见代码)。它通过查找类路径来查找文件。如果您关心的文件位于类路径中,那么这种方法非常有效。如果不在类路径中,则这对您没有帮助。

有许多选项。在任何情况下,我都会将文件访问(或至少是文件路径解析)封装在一个单独的类中。这样,您可以:

  • 在测试中模拟该类以提供正确的文件(路径)
  • 将环境变量传递给测试类以解析正确的文件(路径)
  • 如果找不到文件,请提供回退实现(测试中就是这样)
  • 等等