2012-08-13 54 views
0

Tomcat以vm參數啓動:-Dserver.ref=test。此參數的值確定應用程序要讀取的屬性文件的類型。單元測試也取決於這個屬性的值,並且需要與Tomcat中設置的值匹配。如何讀取-Dserver.ref VM參數

我想我只需要在單元測試中自己設置此屬性?我不認爲有機制來檢查Tomcat中的值-Dserver.ref是什麼?

1

回答

2

這應該工作:

final String ref = System.getProperty("server.ref"); 

ref應等於"test"

+0

假設測試在同一個JVM中運行? – user701254 2012-08-13 13:49:54

+1

@ user701254:您想從另一個JVM讀取此標誌嗎?如果是這樣,請嘗試使用'jmap'或通過JMX連接到該JVM。如果你有興趣,我會找到一些代碼示例。 – 2012-08-13 13:55:41

+0

我可以看看它,謝謝 – user701254 2012-08-13 14:06:43

3

您應該將讀取系統屬性的代碼放入獨立的類中,如RealSystemPropertyReader,它實現了一個接口SystemPropertyReader。該類的默認實現將使用System.getProperty()讀取該屬性。您的類MockSystemPropertyReader的模擬版本將用於單元測試,並會返回您告訴它返回的任何內容。

+0

+1這是正確的答案。依賴於REAL系統屬性的測試不是單元測試。 – 2012-08-13 22:22:20