單元測(cè)試的時(shí)候我們要屏蔽掉外部依賴(lài),對(duì)于微服務(wù),配置中心和注冊(cè)中心也要屏蔽,不然啟動(dòng)的時(shí)候就會(huì)進(jìn)行網(wǎng)絡(luò)調(diào)用,不但會(huì)影響單元測(cè)試的執(zhí)行速度,還會(huì)產(chǎn)生網(wǎng)絡(luò)報(bào)錯(cuò)。
為了方便管理,可以使用一個(gè)測(cè)試用的配置文件來(lái)覆蓋服務(wù)的配置。使用注解TestPropertySource 可以正確加載測(cè)試配置覆蓋服務(wù)的其他配置項(xiàng)。我們可以定義一個(gè)測(cè)試基類(lèi),然后讓工程里的所有測(cè)試類(lèi)都繼承,統(tǒng)一管理配置的入口。
@SpringBootTest
@TestPropertySource("classpath:test.yaml")
public class BaseTest {}
public class UserControllerTest extends BaseTest {}
要關(guān)閉Apollo配置中心和Eureka注冊(cè)中心只需要在test資源文件夾的test.yaml里面添加下面兩項(xiàng)配置即可
apollo.bootstrap.enabled: false
eureka.client.enabled: false
#假如使用active來(lái)管理配置,那么想在單元測(cè)試代碼里屏蔽所有的active可以這么寫(xiě)
spring.profiles.active: