一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - SpringBoot @SpringBootTest加速單元測試的小訣竅

SpringBoot @SpringBootTest加速單元測試的小訣竅

2022-03-10 13:39小小工匠 Java教程

這篇文章主要介紹了SpringBoot @SpringBootTest加速單元測試的小訣竅,具有很好的參考價值,對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

@SpringBootTest加速單元測試小訣竅

Pre

SpringBoot - 應用程序測試方案

隨著代碼量的爭奪,測試類的啟動速度變得越來越慢,而大多數情況下只是為了測試一下某個實現類的某個方法而已,比如測試一個DAO層的方法,卻要啟動這個應用。

SpringBoot @SpringBootTest加速單元測試的小訣竅

今天我們繼續深入了解一下 稍微高級一點的用法

classes

SpringBoot @SpringBootTest加速單元測試的小訣竅

classes 屬性用來指定運行測試類需要裝載的 class 集合,如果不指定,那么會默認裝載 @SpringBootConfiguration 注解標注的類

如果不指定classes屬性,那么啟動測試類時需要加載的Bean的數量和正常啟動一次入口類加載的 Bean 數量是一樣的。

如果你的項目中有很多個 Bean, 特別是有以下幾種時:

  • 有 CommandLineRunner 的實現類
  • 用 @PostConstruct 注解指定了初始化方法的類

這幾種類在程序初始化的過程中都會運行自身的業務代碼或者初始化代碼,從而延后了測試方法的運行。

在這種情況下,我們在編寫測試類的時候,如果明確這個測試類會用到哪幾個 Bean,則可以在 classes 屬性處指定,之后啟動測試類的時候,就只會加載需要的 Bean 到上下文中,從而加快啟動速度。比如:

用法

@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE, classes={ArtisanServiceImpl.class})

webEnvironment

SpringBoot @SpringBootTest加速單元測試的小訣竅

這個屬性的含義是說測試類要不要啟動一個 web 環境, 要不要啟動一個 Tomcat 容器,可選的值為:

  • MOCK:啟動一個模擬的 Servlet 環境, 默認值。
  • RANDOM_PORT:啟動一個 Tomcat 容器,并監聽一個隨機的端口號
  • DEFINED_PORT:啟動一個 Tomcat 容器,并監聽配置文件中定義的端口(未定義則默認監聽8080)
  • NONE:不啟動 Tomcat 容器

怎么使用呢? 舉個例子 如果你要測試的方法不需要用到 Tomcat 容器,比如:

  • 測試 DAO 類的CRUD
  • 測試Service 類的業務方法
  • 測試工具類的公用方法
  • 測試配置文件類是否讀取到了正確的值

用法

只需要通過指定

@SpringBootTest(webEnvironment =
SpringBootTest.WebEnvironment.NONE) 

即可達到加速的效果。這時測試類啟動時就只會初始化 Spring 上下文,不再啟動 Tomcat 容器了:

@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE)
public class ArtisanServiceTests {
  @Autowired
  private IArtisanSerive artisanService;
  @Test
  public void test() {
      // ...
  }
}

 

@記錄使用SpringBootTest遇到的坑

SpringBoot @SpringBootTest加速單元測試的小訣竅

導入junit依賴,運行會報錯

SpringBoot @SpringBootTest加速單元測試的小訣竅

這里變紅了,只需要spring-boot-starter-test依賴就好

SpringBoot @SpringBootTest加速單元測試的小訣竅

刪掉junit依賴

SpringBoot @SpringBootTest加速單元測試的小訣竅

運行成功!

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持服務器之家。

原文鏈接:https://artisan.blog.csdn.net/article/details/117232544

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 91成| 菠萝视频5正版在线观看 | 午夜亚洲福利 | 深夜福利入口 | 久久精品黄AA片一区二区三区 | 99精品网站 | 午夜视频一区二区三区 | 国产真实乱子伦xxxxchina | 香蕉久久一区二区不卡无毒影院 | 成人在线av视频 | 亚洲国产精品高清在线 | 惊弦45集免费看 | 楚乔传第二部免费播放电视连续剧 | 网www天堂资源在线 王淑兰与铁柱全文免费阅读 | 男男同志gaysxxx | 三级黄片毛片 | 热久久免费视频 | 2022最新a精品视频在线观看 | 欧美干b视频 | 日韩一区二区中文字幕 | 精品国产精品国产偷麻豆 | 国产欧美日韩在线不卡第一页 | 91看片淫黄大片欧美看国产片 | 国产美女屁股直流白浆视频无遮挡 | 嫩草影院精品视频在线观看 | 欧美性xxx狂流白浆 欧美性f | 国产老太婆hd老头 | 桃乃木香奈ipx在线播放 | 短篇小说肉| 耽美双性| 亚洲AV国产国产久青草 | 波多野结衣在线中文字幕 | 欧美一级在线播放 | 欧美肥胖老妇做爰变态 | 成人影院免费在线观看 | 校花被吃奶还摸下面 | 国产盗摄wc女厕所 | 亚洲性视频在线观看 | 亚洲热在线观看 | 日韩 欧美 国产 亚洲 中文 | 好硬好大好浪夹得好紧h |