2014-01-23 58 views
1

我正在爲一個引用硬編碼文件名「classpath:config.properties」的應用程序編寫測試。這是不可能改變這個名字的。有沒有什麼辦法用不同的配置測試這個應用程序?即不同的測試在運行時提供不同的配置?模擬一個配置文件

這是一個奇怪的要求,但我已經深深體會到任何輸入

+0

你可以在應用程序需要讀取它之前編寫測試來更改配置文件嗎? – Jeffrey

回答

0

這完全是關於classpath - classpath中有哪些jar以及如何組織項目結構。

用戶maven使'src/test/resources'中的資源在'src/main/resources'之前加載。但通常最好的方法是將應用程序特定的配置資源與應用程序代碼分開。

或者,您可以配置資源的項目分成3個或4個項目:

  • 項目,代碼
  • 與配置資源的項目,加入到應用程序的類路徑,而不是測試類路徑
  • 有測試資源的項目添加到測試類路徑中,但不添加到應用程序類路徑
  • (可選)您可以將JUnit測試代碼移動到單獨的項目中
0

如果您從classpath:config.properties加載配置,那麼這些屬性將駐留在src/main/resources文件夾中。

當你運行測試時,你可以把你的模擬配置放在src/test/resources,它會「覆蓋」主配置。