2010-08-12 118 views
6

我想設置一些使用數據庫的單元測試。我想在開發人員的計算機上使用測試數據庫而不是生產數據庫。我現在使用的方法是在連接到數據庫時檢查一個環境變量,如果該變量存在連接到本地而不是生產環境變量。在Eclipse中爲所有JUnit測試設置環境變量

我可以通過運行配置在Eclipse中設置環境變量,但是我希望在運行JUnit測試時發生這種情況(以防萬一)。

這在Eclipse中可能嗎?

回答

5

爲什麼不將數據庫連接注入需要測試的邏輯,而只有處理啓動代碼中的環境變量(通常不需要單元測試)?

在測試中使用環境變量通常表明配置在您的代碼IME中發生得太深。在可能的情況下,我發現通過依賴注入來構建具有所需內容的對象要好得多,並將代碼與配置代碼分開,從而實現注入內容。

+0

嗯...可能需要做一些重新分解才能完成這項工作...雖然它似乎是一個比混合配置和邏輯好像我目前更好的解決方案... – KLee1 2010-08-12 23:08:41

1

我認爲硬編碼連接信息或測試/生產切換不是最好的主意。

基本上,我們在屬性文件中有DB連接信息。在單元測試中,我們使用另一個包含測試數據庫連接信息的屬性文件。 (一個輕量級的內存數據庫可能是單元測試的最佳選擇。)

單元測試通常有自己的安裝夾具,這些夾具組成了每個測試用例的基本環境,所以使用專用屬性應該不成問題文件。