我與如何重寫一個.yml文件ReflectionTestUtils.setfield未覆蓋本地項目屬性屬性
我們使用Spring框架和使用說明(如@InjectMocks)內的屬性文件中掙扎。
我在配置項目YML文件中聲明瞭一個名爲「one-platform-properties」的屬性,名爲paysafe-ss-fx-service.yml。它設置了一個名爲maxRecoveryAge=0
的變量。它實際上是一個生活緩衝區的時間。
oneplatform:
environment: local
publisher:
rates:
maxRecoveryAge: 0
interPublishDelay: 500
問題是我希望能夠在運行時在我的測試中進行調整。將緩衝區設置爲1小時5小時24小時。
我在測試中使用ReflectionTestUtils.setfield(PublisherClass, "maxDocumentAge", 1, int.class)
調用來調整時間,但該值沒有被覆蓋。當我對我的測試工具中的變量執行監視時,但是一旦測試運行滲透到微服務代碼中,覆蓋的值就會丟失。如何在所有測試中保留重寫值的任何想法?
我的目標是在我的測試運行使用不同的變化:
ReflectionTestUtils.setField(new FxRatesEventPublisher(),"maxRecoveryAge",1,int.class);
ReflectionTestUtils.setField(new FxRatesEventPublisher(),"maxRecoveryAge",5,int.class);
ReflectionTestUtils.setField(new FxRatesEventPublisher(),"maxRecoveryAge",24,int.class);
,基本上覆蓋在項目定義的屬性文件中定義的值。
我最初嘗試過,但數值仍然沒有被覆蓋。請參閱下面的最終答案。 –