2012-04-20 157 views
0

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

我在AppEngine LocalServiceTestHelper的环境中测试,它在getAppDir方法中返回我的战争目录,但代码仍然无法理解相对路径。

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

回答

2

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

  • 模拟,在您的测试类,以提供正确的文件(路径)
  • 传递一个环境变量,你的测试类来解决正确的文件(路径)
  • 提供一个如果没有找到该文件则回退执行(因为它在您的测试中是这种情况)
  • etc ...
0

对于我的单元测试,我创建了一个名为SupportFilePathResolver的实用程序类(请参阅代码)。它通过查找类路径来查找文件。如果你关心的文件在类路径中,这很好地工作。如果不在类路径中,那么这对你没有帮助。

相关问题