我想從 application.properties 中獲取值。
@ExtendWith(MockitoExtension.class)
public class CurrencyServiceTest {
@Mock
private OpenExchangeRatesClient openExchangeRatesClient;
@Value("${openexchangerates.app.id}")
private String appId;
@Value("${openexchangerates.currency.base}")
private String base;
...
問題是 appId 和 base 在測驗中為空。這是什么原因?
uj5u.com熱心網友回復:
@Value是 spring 注釋,spring 將屬性值注入 Spring 管理的 bean
此注解可用于將值注入 Spring 管理的 bean 中的欄位,并且可以在欄位或建構式/方法引數級別應用。
如果你想讓這個功能正常作業,你必須使用@SpringBootTest注解來加載ApplicationContext,這通常是撰寫集成測驗
當我們需要引導整個容器時,@SpringBootTest 注解很有用。注釋通過創建將在我們的測驗中使用的 ApplicationContext 來作業。
您還可以在使用 撰寫單元測驗用例時注入價值,如此處所示的ReflectionTestUtils示例
@Before
public void setUp() {
ReflectionTestUtils.setField(springJunitService, "securityKey", "it's a security key");
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/485449.html
