單元測試的時候我們要屏蔽掉外部依賴捆毫,對于微服務,配置中心和注冊中心也要屏蔽絮蒿,不然啟動的時候就會進行網(wǎng)絡調用尊搬,不但會影響單元測試的執(zhí)行速度,還會產(chǎn)生網(wǎng)絡報錯土涝。
為了方便管理佛寿,可以使用一個測試用的配置文件來覆蓋服務的配置。使用注解TestPropertySource 可以正確加載測試配置覆蓋服務的其他配置項但壮。我們可以定義一個測試基類冀泻,然后讓工程里的所有測試類都繼承,統(tǒng)一管理配置的入口蜡饵。
@SpringBootTest
@TestPropertySource("classpath:test.yaml")
public class BaseTest {}
public class UserControllerTest extends BaseTest {}
要關閉Apollo配置中心和Eureka注冊中心只需要在test資源文件夾的test.yaml里面添加下面兩項配置即可
apollo.bootstrap.enabled: false
eureka.client.enabled: false
#假如使用active來管理配置弹渔,那么想在單元測試代碼里屏蔽所有的active可以這么寫
spring.profiles.active: