激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产免费专区 | 久久久久久久一区二区三区 | 欧美久久一区二区 | 中国大陆一级毛片 | 在线观看国产免费视频 | av电影免费在线 | aa久久| 国产艳妇av视国产精选av一区 | 久久精品综合视频 | 精品日韩欧美 | 一区二区久久精品66国产精品 | 免费久久久 | 狠狠操视频网站 | 欧美精品免费一区二区三区 | 国产精品久久久久久久久久三级 | 国产免费永久在线观看 | 日本免费中文字幕 | 中文字幕精品一二三四五六七八 | 999精品国产 | 污黄视频在线播放 | 成人18在线 | 欧美有码在线观看 | 一区二区久久精品66国产精品 | 国产精品久久久久久久久久10秀 | 色奇米| 精品亚洲网站 | 国产一级片91 | 欧美视频在线观看一区 | 久久密| 成年人在线视频观看 | 视频二区国产 | 成人午夜影院 | 欧美一级免费视频 | 欧美成人精品一区二区男人小说 | 又黄又爽免费无遮挡在线观看 | 精品国产网站 | 欧美一区二区三区久久久久久桃花 | 免费久久久久 | 欧洲怡红院 | 日本一级黄色大片 | 一区国产在线观看 |