0

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

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

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

4

2 回答 2

2

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

  • 在您的测试中模拟该类以提供正确的文件(路径)
  • 将环境变量传递给您的测试类以解析正确的文件(路径)
  • 如果找不到文件,则提供后备实现(就像您的测试中的情况一样)
  • ETC...
于 2012-04-21T13:54:01.430 回答
0

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

于 2012-04-20T20:31:13.430 回答