Spring 對 Junit4,Junit5 的支持上的運用

1. Spring 對 Junit4,Junit5 的支持上的運用

文章目錄

  • 1. Spring 對 Junit4,Junit5 的支持上的運用
  • 每博一文案
  • 2. Spring對Junit4 的支持
  • 3. Spring對Junit5的支持
  • 4. 總結:
  • 5. 最后:


每博一文案

關于理想主義,在知乎上看到一句話:“他們并不是不懂別人口中的現實,他們只是不信,事情只能是現在這個樣子。”錯誤的、骯臟的、混亂的、輕松自如的、自言盡力了,有人真的不懂么?為了利益和怠惰做出這樣那樣或好或壞的事情,什么動物都會。有人會開脫和找借口,說著現實就是如此啊,無力改變世界就改變自己啊。他們對現狀搖搖頭然后果斷投入到漆黑的污水里去,義無反顧地。但理想主義者是不信的,他們先是在語言上畫一個大問號,再用行動畫一個大嘆號。他先問你,怎么就非得這樣不可?怎么就沒了別的辦法?然后再用做出來的事情告訴你,我告訴你就是還能有更干凈、更溫和、更有效的辦法!他們自己也有不能一塵不染的時候。但他們看著滿目漆黑也不信世界上就沒有潔白、干凈這回事。理想主義者就是不會相信生活和世界就是這樣了。不管它是別人眼中的好,還是壞。“一定有更好的辦法,也能夠通過合理的方式,緩慢地改善世界。愿意為了自己的理想而做些什么,甚至也愿意去犧牲什么。對于自己的手段、目的與認知,始終心懷疑問。即使做出的一切都看不到所謂的成效。即使這改變在活著的時候甚至也看不到。知道世界比較容易被忍受的這部分,是很多人用了很多代價換來的。但不會停下對好的東西的向往,還有向光明的地方行走的腳步。”這才算理想主義者吧。往往是重視精神價值超過物質利益。理想主義者把對精神價值的追求看作人生的主要追求,這些精神價值包括:尊嚴、正義、愛、美等等。而浪漫主義,諾瓦利斯說過:“在我看來,把普通的東西賦予崇高的意義,給平凡的東西披上神秘的外衣,使熟知的東西恢復未知的尊嚴,對有限的東西給予無限的外觀,這就是浪漫化。反過來說,這就是變得崇高、未知、神秘和無限的過程,通過這種聯系,這一浪漫化過程就會被對數化。它得到一個常用的表達:浪漫哲學。”

2. Spring對Junit4 的支持

準備工作,先在pom.xml 文件當中,導入相關依賴的 jar 包信息,如下:

在這里插入圖片描述

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.rainbowsea</groupId><artifactId>spring6-015-junit</artifactId><version>1.0-SNAPSHOT</version><packaging>jar</packaging><properties><maven.compiler.source>17</maven.compiler.source><maven.compiler.target>17</maven.compiler.target></properties><!--倉庫--><repositories><!--spring里程碑版本的倉庫--><repository><id>repository.spring.milestone</id><name>Spring Milestone Repository</name><url>https://repo.spring.io/milestone</url></repository></repositories><dependencies><!--        spring context 依賴--><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>6.0.11</version></dependency><!--        spring 對 Junit 支持的依賴--><!--spring對junit的支持相關依賴--><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><!--            這個版本spring6,既支持Junit4 又支持Junit5--><version>6.0.11</version></dependency><!--        junit4依賴--><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13.2</version><scope>test</scope></dependency><!--        @Resoure 注解 非簡單類型的注入,賦值--><dependency><groupId>jakarta.annotation</groupId><artifactId>jakarta.annotation-api</artifactId><version>2.1.1</version></dependency></dependencies></project>

準備好,對于的 Bean 對象用于測試:注意:需要將其 Bean 對象納入到 Spring IOC 容器當中進行管理上。

在這里插入圖片描述

package com.rainbowsea.spring6.bean;import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;@Component(value = "user")   // 交給 Spirng IOC 容器管理
public class User {@Value("張三") // spring 當中 value()注解簡單類型的,set注入,賦值private String name;public User(String name) {this.name = name;}public User() {}@Overridepublic String toString() {return "User{" +"name='" + name + '\'' +'}';}public String getName() {return name;}public void setName(String name) {this.name = name;}
}

配置相關的:spring.xml 的配置信息的內容,這里我們用的是注解時開發,需要加上一個組件掃描

在這里插入圖片描述

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd"><!--    組件掃描--><context:component-scan base-package="com.rainbowsea.spring6.bean"></context:component-scan>
</beans>

單元測試:(一般平常的單元測試)如下:

在這里插入圖片描述

在這里插入圖片描述

上述:方式,代碼重復率高,復用性較差。

Spring提供的方便主要是這幾個注解:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(“classpath:spring.xml”)注意該:spring.xml 文件要一定要在類路徑下才行
在單元測試類上使用這兩個注解之后,在單元測試類中的屬性上可以使用 @Autowired。比較方便。

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:spring.xml") // 注意該:spring.xml 文件要一定要在類路徑下才行

優化如下:

在這里插入圖片描述

在這里插入圖片描述

使用@Resource 需要導入相關的 jar 包,如下:

在這里插入圖片描述

<!--        @Resoure 注解 非簡單類型的注入,賦值--><dependency><groupId>jakarta.annotation</groupId><artifactId>jakarta.annotation-api</artifactId><version>2.1.1</version></dependency>

在這里插入圖片描述

同時注意:該Juit4的@ Test 的注解是在:org.junit.Test; 包下的

在這里插入圖片描述

package com.rainbowsea.spring6.test;import com.rainbowsea.spring6.bean.User;
import jakarta.annotation.Resource;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:spring.xml")
public class SpringJunit4Test2 {@Resource(name = "user")private User user;@Testpublic void testUser() {System.out.println(user.getName());}@Testpublic void testUser2() {System.out.println(user.getName());}@Testpublic void testUser3() {System.out.println(user.getName());}}

3. Spring對Junit5的支持

引入JUnit5的依賴,Spring對JUnit支持的依賴還是:spring-test,同時換成,junit5 ,還是在 pom.xml 文件當值配置相關依賴的 jar 如下:

在這里插入圖片描述

 <!--        junit5 依賴--><dependency><groupId>org.junit.jupiter</groupId><artifactId>junit-jupiter</artifactId><version>5.9.0</version><scope>test</scope></dependency>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.rainbowsea</groupId><artifactId>spring6-015-junit</artifactId><version>1.0-SNAPSHOT</version><packaging>jar</packaging><properties><maven.compiler.source>17</maven.compiler.source><maven.compiler.target>17</maven.compiler.target></properties><!--倉庫--><repositories><!--spring里程碑版本的倉庫--><repository><id>repository.spring.milestone</id><name>Spring Milestone Repository</name><url>https://repo.spring.io/milestone</url></repository></repositories><dependencies><!--        spring context 依賴--><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>6.0.11</version></dependency><!--        spring 對 Junit 支持的依賴--><!--spring對junit的支持相關依賴--><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><!--            這個版本spring6,既支持Junit4 又支持Junit5--><version>6.0.11</version></dependency><!--        junit5 依賴--><dependency><groupId>org.junit.jupiter</groupId><artifactId>junit-jupiter</artifactId><version>5.9.0</version><scope>test</scope></dependency><!--        @Resoure 注解 非簡單類型的注入,賦值--><dependency><groupId>jakarta.annotation</groupId><artifactId>jakarta.annotation-api</artifactId><version>2.1.1</version></dependency></dependencies></project>

還是使用上面的 User 的 bean 對象進行測試:

在這里插入圖片描述

在JUnit5當中,可以使用Spring提供的以下兩個注解,標注到單元測試類上,這樣在類當中就可以使用@Autowired注解了。

@ExtendWith(SpringExtension.class)
@ContextConfiguration("classpath:spring.xml")  // 同樣一定要是在類路徑下

@ContextConfiguration(“classpath:spring.xml”) // 同樣一定要是在類路徑下

在這里插入圖片描述

同時注意:該Juit5 的@ Test 的注解是在:org.junit.jupiter.api.Test 包下的 ,選擇的時候不要,弄錯了。

在這里插入圖片描述

單元測試:

在這里插入圖片描述

package com.rainbowsea.spring6.test;import com.rainbowsea.spring6.bean.User;
import jakarta.annotation.Resource;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit.jupiter.SpringExtension;@ExtendWith(SpringExtension.class)
@ContextConfiguration("classpath:spring.xml")
public class SpringJunit5Test {@Resource(name = "user")  // 非簡單類型的注入,賦值,交給Spring管理private User user;@Test  // import org.junit.jupiter.api.Test;public void testUser() {System.out.println(user.getName());}@Test  // import org.junit.jupiter.api.Test;public void testUser2() {System.out.println(user.getName());}@Test  // import org.junit.jupiter.api.Test;public void testUser3() {System.out.println(user.getName());}}

4. 總結:

  1. Spring 對 Junit4 的依賴的 jar 包,同時
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:spring.xml") // 注意該:spring.xml 文件要一定要在類路徑下才行
  1. 同時注意:該Juit4的@Test 的注解是在:org.junit.Test; 包下的
  2. Spring 對 Junit5 的依賴的 jar 包,同時
@ExtendWith(SpringExtension.class)
@ContextConfiguration("classpath:spring.xml")  // 同樣一定要是在類路徑下
  1. 無論是 Junit4 還是 Junit5 當中的 @ContextConfiguration 注解當中的 @ContextConfiguration(“classpath:spring.xml”) 都是:一定要是在類路徑下才行的。
  2. 關于:Spring 對 Junit4,Junit5 的支持運用,大家靈活選擇運用即可,并不是非要選擇其中的哪個哪個啥的。滿足業務即可。

5. 最后:

“在這個最后的篇章中,我要表達我對每一位讀者的感激之情。你們的關注和回復是我創作的動力源泉,我從你們身上吸取了無盡的靈感與勇氣。我會將你們的鼓勵留在心底,繼續在其他的領域奮斗。感謝你們,我們總會在某個時刻再次相遇。”

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/14844.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/14844.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/14844.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

在Windows下訪問WSL(Windows Subsystem for Linux)文件夾

在Windows下訪問WSL&#xff08;Windows Subsystem for Linux&#xff09;文件夾&#xff0c;可以按照以下步驟操作&#xff1a; 通過Windows文件資源管理器訪問&#xff1a; 打開文件資源管理器。在地址欄中輸入\\wsl$&#xff0c;然后按回車鍵。這將打開一個顯示WSL可用發行版…

kafka配置消費者重要參數

文章目錄 fetch.min.bytesfetch.max.wait.msfetch.max.bytesmax.poll.recordsmax.partition.fetch.bytessession.timeout.ms和heartbeat.interval.msmax.poll.interval.msrequest.timeout.msauto.offset.resetenable.auto.commitpartition.assignment.strategy區間(range)輪詢(…

Xline社區會議Call Up|在 CURP 算法中實現聯合共識的安全性

為了更全面地向大家介紹Xline的進展&#xff0c;同時促進Xline社區的發展&#xff0c;我們將于2024年5月31日北京時間11:00 p.m.召開Xline社區會議。 歡迎您屆時登陸zoom觀看直播&#xff0c;或點擊“閱讀原文”鏈接加入會議&#xff1a; 會議號: 832 1086 6737 密碼: 41125…

通過cmd命令行使用用3dmax自帶的vray渲染

有時調試需要使用vray渲染vrscene文件看效果&#xff0c;只裝有3dmax下可以使用自帶vray渲染&#xff0c;在3dmax的渲染日志里面看自帶引擎路徑 使用命令行進入到此目錄 執行命令指定vr文件即可看到效果&#xff0c;如&#xff1a;vray.exe -sceneFile“C:\test15\202405241…

pip安裝報錯解決之后,手動安裝太麻煩,怎么辦

在使用pip install package_name安裝公共庫的時候,經常會報錯: Microsoft Windows [版本 6.1.7601] 版權所有 (c) 2009 Microsoft Corporation。保留所有權利。C:\Users\Administrator>pip install hatch WARNING: Ignoring invalid distribution -ip (d:\soft\python\py…

記一次成功的性能調優

環境&#xff1a;mysql8&#xff0c;表A大小10G&#xff0c;dbeaver24.0.5 現象&#xff1a;查詢頁面加載數據慢 操作&#xff1a; 第一步&#xff1a;新建sql編輯器&#xff0c;把sql貼到編輯器&#xff0c;帶參數&#xff1b; 第二步&#xff1a;在sql前加explain空一個并…

Cesium與Three相機同步(2)

之前實現了將Three相機同步到Cesium相機Cesium與Three相機同步(1)-CSDN博客 現在是將Cesium相機同步到Three相機,從而實現了相機雙向同步。 <!DOCTYPE html> <html lang="en"><head><title>three.js webgl - orbit controls</title&g…

【教學類-58-03】黑白三角拼圖03(4*4宮格)總數算不出+隨機抽取10張

背景需求&#xff1a; 【教學類-58-01】黑白三角拼圖01&#xff08;2*2宮格&#xff09;256種-CSDN博客文章瀏覽閱讀318次&#xff0c;點贊10次&#xff0c;收藏12次。【教學類-58-01】黑白三角拼圖01&#xff08;2*2宮格&#xff09;256種https://blog.csdn.net/reasonsummer/…

【Jmeter】使用Jmeter進行接口測試、跨線程組獲取參數

Jmeter接口測試 Jmeter設置成中文實操練習-跨線程組提取參數&#xff0c;使用值HTTP請求默認值&HTTP信息頭管理器 相信打算從事測試工程師的同學們&#xff0c;肯定對Jmeter是耳熟能詳的。使用Jmeter可以進行接口測試、性能測試、壓力測試等等&#xff1b;這個章節介紹如何…

Cisco Catalyst 9000 9200 9300 9400 IOS software upgrade

1 背景 從Catalyst 3650 ,3850&#xff0c;Catalyst 9000開始, 更準確的說是IOS XE的交換機的系統鏡像安裝方式分為2種 ? Bundle mode ? Install mode 這2種方工啥區別&#xff1f; Bundle mode 傳統方式利用boot system flash:c9k.xx16.bin方式引導 Install mode 將bin文…

用友 存貨分類按層級取數SQL語句

SELECT cInvCCode 分類編碼, cInvCName 分類名稱, iInvCGrade 分類層級, ss.bInvCEnd 是否是末級, aa.* FROM InventoryClass ss LEFT JOIN ( SELECT * FROM ( SELECT cInvCCode AS 一級分類編碼, …

cocos 通過 electron 打包成 exe 文件,實現通信問題

cocos 通過 electron 打包成 exe 文件&#xff0c;實現通信問題 首先&#xff0c;我使用的 cocos 版本是 2.4.12&#xff0c;遇到一個問題&#xff0c;是啥子呢&#xff0c;就是我要把用 cocos 開發出來的項目打包成一個 exe 可執行程序&#xff0c;使用的是 electron &#xf…

【C++算法】BFS解決多源最短路問題相關經典算法題

1.01矩陣 既然本章是BFS解決多源最短路問題&#xff0c;也就是說有若干個起點&#xff0c;那我們就可以暴力一點&#xff0c;直接把多源最短路徑問題轉化成若干個單源最短路徑問題&#xff0c;然后將每次的步數比較一下&#xff0c;取到最短的就是最短路徑的結果&#xff0c;這…

arcgis 10.6 工具欄操作error 001143 后臺服務器拋出異常

arcgis 10.6 工具欄操作error 001143 后臺服務器拋出異常 環境 win10arcgis 10.6 問題 執行定義投影要素轉線出現 Error: 001143:后臺服務器拋出異常&#xff08;差點重裝10.6&#xff09; 如下圖所示&#xff1a; 解決方法 通過在菜單工具條上單擊地理處理 > 地理處…

設計模式使用(成本扣除)

前言 名詞解釋 基礎名詞 訂單金額&#xff1a;用戶下單時支付的金額&#xff0c;這個最好理解 產品分成&#xff1a;也就是跟其他人合做以后我方能分到的金額&#xff0c;舉個例子&#xff0c;比如用戶訂單金額是 100 塊&#xff0c;我方的分成是 80%&#xff0c;那么也就是…

OceanMind海睿思通過上海數交所數商認證,提供高質量數據治理和數據咨詢服務

近日&#xff0c;中新賽克海睿思成功通過上海數據交易所的數商認證&#xff0c;獲得上海數據交易所頒發的“數據產品開發服務商”、“數據治理服務商”和“數據咨詢服務商”三大證書。 作為由深圳市創新投資集團有限公司投資控股的高新技術企業&#xff0c;國家級專精特新“小巨…

如何通過OpenHarmony的音頻模塊實現錄音變速功能?

簡介 OpenAtom OpenHarmony&#xff08;以下簡稱“OpenHarmony”&#xff09;是由開放原子開源基金會孵化及運營的開源項目&#xff0c;是面向全場景、全連接、全智能時代的智能物聯網操作系統。 多媒體子系統是OpenHarmony系統中的核心子系統&#xff0c;為系統提供了相機、…

2024-05-24 問AI: 在深度學習中,什么是L1 正則化和L2 正則化?

文心一言 在深度學習和機器學習中&#xff0c;正則化是一種用于防止模型過擬合的技術。它通過向損失函數添加一個懲罰項來實現&#xff0c;這個懲罰項與模型的復雜度有關。正則化項可以看作是對模型參數的約束&#xff0c;使得模型在訓練時不僅關注于最小化訓練誤差&#xff0…

Java入門基礎學習筆記43——包

什么是包&#xff1f; 包是用來分門別類的管理各種不同程序的&#xff0c;類似文件夾&#xff0c;建包有利于程序的管理和維護。 建包的語法規則&#xff1a; package cn.ensource.javabean;public class Car() {} 在自己的程序中調用其他包下的程序的注意事項&#xff1a; 1…

動手學深度學習——層和塊

1. 層 層是一個將輸入數據轉換為輸出數據的神經網絡組件。每個層都會對輸入數據進行一定的操作&#xff0c;例如線性變換、非線性激活函數等&#xff0c;以產生輸出數據。 torch.nn模塊提供了各種預定義的層&#xff0c;如線性層、卷積層、池化層等&#xff0c; nn.Linear&a…