2012-04-20 183 views
0

我有一些引用文件名的代碼。在服務器上,該引用是相對於我的war目錄。但是,當我運行測試時,相對根目錄似乎沒有設置 - 只有從本地HD根目錄開始的絕對路徑才能找到文件。在JUnit中設置相對文件路徑的根目錄,AppEngine

我在AppEngine LocalServiceTestHelper的環境中測試,它在getAppDir方法中返回我的戰爭目錄,但代碼仍然無法理解相對路徑。

如何在JUnit測試中設置相對文件名的根目錄?

回答

2

有多種選擇。在任何情況下,我都會將文件訪問(或至少是文件路徑解析)封裝在一個單獨的類中。這樣一來,你可以:

  • 模擬,在您的測試類,以提供正確的文件(路徑)
  • 傳遞一個環境變量,你的測試類來解決正確的文件(路徑)
  • 提供一個如果沒有找到該文件則回退執行(因爲它在您的測試中是這種情況)
  • etc ...
0

對於我的單元測試,我創建了一個名爲SupportFilePathResolver的實用程序類(請參閱代碼)。它通過查找類路徑來查找文件。如果你關心的文件在類路徑中,這很好地工作。如果不在類路徑中,那麼這對你沒有幫助。

相關問題