SpringBoot深入講解單元測試與熱部署應(yīng)用
一、單元測試
開發(fā)中,每當(dāng)完成一個功能接口或業(yè)務(wù)方法的編寫后,通常都會借助單元測試驗證該功能是否正確。Spring Boot對項目的單元測試提供了很好的支持,在使用時,需要提前在項目的pom.xml文件中添加spring-boot-starter-test測試依賴啟動器,可以通過相關(guān)注解實現(xiàn)單元測試
演示:
1.添加spring-boot-starter-test測試依賴啟動器
在項目的pom.xml文件中添加spring-boot-starter-test測試依賴啟動器,示例代碼如下 :
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
注意:使用Spring Initializr方式搭建的Spring Boot項目,會自動加入spring-boot-starter-test測試依賴啟動器,無需再手動添加
2.編寫單元測試類和測試方法
使用Spring Initializr方式搭建的Spring Boot項目,會在src.test.java測試目錄下自動創(chuàng)建與項目主程序啟動類對應(yīng)的單元測試類
package com.lagou;
import com.lagou.controller.HelloController;
import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.junit4.SpringRunner;
/**
* SpringJUnit4ClassRunner.class:Spring運行環(huán)境
* JUnit4.class:JUnit運行環(huán)境
* SpringRunner.class:Spring Boot運行環(huán)境
*/
@RunWith(SpringRunner.class) //@RunWith:運行器
@SpringBootTest //標(biāo)記為當(dāng)前類為SpringBoot測試類,加載項目的ApplicationContext上下文環(huán)境
class Springbootdemo2ApplicationTests {
/**
* 需求:調(diào)用HelloController的hello方法
*/
@Autowired
private HelloController helloController;
@Test
void contextLoads() {
String result = helloController.hello();
System.out.println(result);
}
}
上述代碼中,先使用@Autowired注解注入了DemoController實例對象,然后在contextLoads()方法中調(diào)用了DemoController類中對應(yīng)的請求控制方法contextLoads(),并輸出打印結(jié)果。

二、熱部署
在開發(fā)過程中,通常會對一段業(yè)務(wù)代碼不斷地修改測試,在修改之后往往需要重啟服務(wù),有些服務(wù)需要加載很久才能啟動成功,這種不必要的重復(fù)操作極大的降低了程序開發(fā)效率。為此,Spring Boot框架專門提供了進(jìn)行熱部署的依賴啟動器,用于進(jìn)行項目熱部署,而無需手動重啟項目 。
熱部署:在修改完代碼之后,不需要重新啟動容器,就可以實現(xiàn)更新。
使用步驟:
1)添加SpringBoot的熱部署依賴啟動器
2)開啟Idea的自動編譯
3)開啟Idea的在項目運行中自動編譯的功能
演示:
1.添加spring-boot-devtools熱部署依賴啟動器
在Spring Boot項目進(jìn)行熱部署測試之前,需要先在項目的pom.xml文件中添加spring-boot-devtools熱部署依賴啟動器:
<!-- 引入熱部署依賴 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> </dependency>
由于使用的是IDEA開發(fā)工具,添加熱部署依賴后可能沒有任何效果,接下來還需要針對IDEA開發(fā)工具進(jìn)行熱部署相關(guān)的功能設(shè)置。
2.IDEA工具熱部署設(shè)置
選擇IDEA工具界面的【File】->【Settings】選項,打開Compiler面板設(shè)置頁面

選擇Build下的Compiler選項,在右側(cè)勾選“Build project automatically”選項將項目設(shè)置為自動編譯,單擊【Apply】→【OK】按鈕保存設(shè)置
在項目任意頁面中使用組合快捷鍵“Ctrl+Shift+Alt+/”打開Maintenance選項框,選中并打開Registry頁面,具體如圖1-17所示

列表中找到“compiler.automake.allow.when.app.running”,將該選項后的Value值勾選,用于指定IDEA工具在程序運行過程中自動編譯,最后單擊【Close】按鈕完成設(shè)置
3.熱部署效果測試
啟動chapter01http://localhost:8080/hello

可以看出,瀏覽器輸出了“你好,Spring Boot”,說明項目熱部署配置成功。
到此這篇關(guān)于SpringBoot深入講解單元測試與熱部署應(yīng)用的文章就介紹到這了,更多相關(guān)SpringBoot單元測試與熱部署內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
springboot 整合 nacos 配置實現(xiàn)多個環(huán)境不同配置
本文介紹了Nacos配置中心的優(yōu)勢,包括與Apollo的性能對比,Nacos服務(wù)端的安裝與配置,以及如何在SpringBoot項目中集成Nacos進(jìn)行多環(huán)境配置,提供了詳細(xì)的步驟,包括下載、安裝、配置中心的創(chuàng)建和項目集成,旨在幫助開發(fā)者更好地使用Nacos進(jìn)行項目配置管理2024-09-09
Java使用Fastjson進(jìn)行JSON數(shù)據(jù)操作教程詳解
Fastjson?是一個?Java?庫,可以用來將?Java?對象轉(zhuǎn)換為它們的?JSON?表示,本文主要為大家詳細(xì)介紹了Java如何使用Fastjson進(jìn)行JSON數(shù)據(jù)操作,需要的可以參考下2023-12-12
Java日常練習(xí)題,每天進(jìn)步一點點(24)
下面小編就為大家?guī)硪黄狫ava基礎(chǔ)的幾道練習(xí)題(分享)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧,希望可以幫到你2021-07-07
Java Socket編程簡介_動力節(jié)點Java學(xué)院整理
這篇文章主要介紹了Java Socket編程簡介的相關(guān)知識,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2017-05-05
kafka運維consumer-groups.sh消費者組管理
這篇文章主要為大家介紹了kafka運維consumer-groups.sh消費者組管理,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11
flowable動態(tài)創(chuàng)建多級流程模板實現(xiàn)demo
這篇文章主要為大家介紹了flowable動態(tài)創(chuàng)建多級流程模板實現(xiàn)demo,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05
@RequestBody注解Ajax post json List集合數(shù)據(jù)請求400/41
這篇文章主要介紹了@RequestBody注解Ajax post json List集合數(shù)據(jù)請求400/415的處理方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-10-10
Mybatis-plus自定義SQL注入器查詢@TableLogic邏輯刪除后的數(shù)據(jù)詳解
這篇文章主要給大家介紹了關(guān)于Mybatis-plus自定義SQL注入器查詢@TableLogic邏輯刪除后的數(shù)據(jù)的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2023-03-03

