1. 程式人生 > 實用技巧 >SpringBoot第三集:熱部署與單元測試(2020最新最易懂)

SpringBoot第三集:熱部署與單元測試(2020最新最易懂)

SpringBoot第三集:熱部署與單元測試(2020最新最易懂)

  有興趣的可以先參考附錄簡單瞭解SpringBoot自動裝配流程。

一.SpringBoot開發熱部署

  專案開發中,你是否也遇到更新配置檔案資訊後,必須重啟專案的,否則資料不更新的問題?

  Spring Boot提供了一個名為spring-boot-devtools的模組來使應用支援熱部署,提高開發效率,修改後無需手動重啟Spring Boot應用。使用也非常簡單,在pom.xmI中加入devtools的依賴就可以了。當然,首次引入後,專案應用需要重啟。否則不生效。

1 <!-- SpringBoot熱部署依賴 -->
2 <dependency> 3 <groupId>org.springframework.boot</groupId> 4 <artifactId>spring-boot-devtools</artifactId> 5 </dependency>

二.SprongBoot單元測試

  對於java開發者而言,Junit應該無人不知了。所以SpringBoot也是基於Junit進行單位測試的。測試程式碼位置:建議在:src/test/java目錄下

  SpringBoot測試開發,只需要在pom中引入測試依賴即可使用,預設SpringBoot會排除低版本的Junit測試包。(SpringBoot推薦使用Junit5.x或更高版本)

  JUnit中的註解測試常用註解:

    @BeforeClass:針對所有測試,在每個類載入的開始和結束時執行,必須為靜態方法:static void
    @Before:初始化方法,執行當前測試類的每個測試方法前執行。
    @Test:測試方法,在這裡可以測試期望異常和超時時間
    @After:釋放資源,執行當前測試類的每個測試方法後執行
    @AfterClass:針對所有測試,在每個類載入的開始和結束時執行,必須為靜態方法:static void
    @Ignore:忽略的測試方法(只在測試類的時候生效,單獨執行該測試方法無效)基本不用
    @RunWith:可以更改測試執行器 ,用來告訴JUnit不要使用內建的org.junit.runner.Runner進行單元測試,而應該使用指定的類做單元測試,對於Spring單元測試總是要使用 SpringRunner.class 。(一般不用)
    一個單元測試類執行順序為:

    @BeforeClass –> @Before –> @Test –> @After –> @AfterClass

    每一個測試方法的呼叫順序為:

    @Before –> @Test –> @After

1.測試案例

  1. 新建SpringBoot專案,預設會匯入測試依賴,如果沒有請手動修改pom檔案匯入。
     1 <!-- SpringBoot測試依賴 -->
     2 <dependency>
     3     <groupId>org.springframework.boot</groupId>
     4     <artifactId>spring-boot-starter-test</artifactId>
     5     <scope>test</scope>
     6     <!-- 排除junit.vintage -->
     7     <exclusions>
     8         <exclusion>
     9             <groupId>org.junit.vintage</groupId>
    10             <artifactId>junit-vintage-engine</artifactId>
    11         </exclusion>
    12     </exclusions>
    13 </dependency>
  2. 在src/test/java目錄下新建測試類。
      @SpringBootTest註解是SpringBoot自1.4.0版本開始引入的一個用於測試的註解。
     1 @SpringBootTest
     2 class SpringBootApplicationTests {
     3     
     4     @Autowired
     5     IDCard  idcard;
     6     
     7     @Test
     8     void contextLoads() {
     9         System.out.println("測試:"+idcard);
    10     }
    11     
    12 }

  3. 選中測試方法名,右鍵執行Junit Test即可。
    其他的測試註解:略。自行演示!

附錄

  SpringBoot自動裝配原理分析

  檢視@SpringBootApplication註解原始碼。

Mavne找到Spring-Boot-autoconfigrue依賴,進入包META-INF開啟檔案:spring.factories

在上圖中,配置源會判斷是否啟用自動裝配,也只會載入已啟用的配置,只要我們在pom檔案中引入的元件,SpringBoot都會幫我們自動配置。

可以通過在核心配置檔案中新增如下程式碼,實現控制檯顯示配置詳情:

debug: true