在 Spring Boot 中,有沒有一種方法可以模擬所有現有 JUnit 測驗的單個 bean,而無需更改現有測驗類(例如,通過添加注釋或添加繼承)?就像通過配置全域注入一個 bean。
uj5u.com熱心網友回復:
假設您@SpringBootApplication在主源中使用來定義 Spring Boot 應用程式,您已經為該包中的所有內容(包括嵌套包)啟用了組件掃描。
運行測驗時,src/test/java 中的類(通常)也被添加到類路徑中,因此也可以被掃描。
例如,如果您定義了@SpringBootApplicationat com.example.boot.MySpringBootApplication,那么com.example.boot.MyTestConfiguration將有資格進行組件掃描,即使前者在 src/main 中,而后者在 src/test 中。將它放在 src/test/java 目錄中將確保它僅在運行測驗時有效。
然后,您可以在該配置中定義您想要的任何“全域”bean。
使用我提供的包/類名:
// File: src/test/java/com/example/boot/MyTestConfiguration.java
@Configuration // this will get component-scanned
public class MyTestConfiguration {
@MockBean
MyBean myGlobalMockBean;
}
然后,只要您不從背景關系配置中省略該配置,MockBean 就應該始終存在于測驗中。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/477148.html
