Tomcat以vm參數啓動:-Dserver.ref=test
。此參數的值確定應用程序要讀取的屬性文件的類型。單元測試也取決於這個屬性的值,並且需要與Tomcat中設置的值匹配。如何讀取-Dserver.ref VM參數
我想我只需要在單元測試中自己設置此屬性?我不認爲有機制來檢查Tomcat中的值-Dserver.ref
是什麼?
Tomcat以vm參數啓動:-Dserver.ref=test
。此參數的值確定應用程序要讀取的屬性文件的類型。單元測試也取決於這個屬性的值,並且需要與Tomcat中設置的值匹配。如何讀取-Dserver.ref VM參數
我想我只需要在單元測試中自己設置此屬性?我不認爲有機制來檢查Tomcat中的值-Dserver.ref
是什麼?
這應該工作:
final String ref = System.getProperty("server.ref");
ref
應等於"test"
。
您應該將讀取系統屬性的代碼放入獨立的類中,如RealSystemPropertyReader,它實現了一個接口SystemPropertyReader。該類的默認實現將使用System.getProperty()讀取該屬性。您的類MockSystemPropertyReader的模擬版本將用於單元測試,並會返回您告訴它返回的任何內容。
+1這是正確的答案。依賴於REAL系統屬性的測試不是單元測試。 – 2012-08-13 22:22:20
假設測試在同一個JVM中運行? – user701254 2012-08-13 13:49:54
@ user701254:您想從另一個JVM讀取此標誌嗎?如果是這樣,請嘗試使用'jmap'或通過JMX連接到該JVM。如果你有興趣,我會找到一些代碼示例。 – 2012-08-13 13:55:41
我可以看看它,謝謝 – user701254 2012-08-13 14:06:43