Java之Spring整合Junit
更新時(shí)間:2023年04月06日 11:54:07 作者:JiangTao_xlili
Java Spring框架是一個(gè)輕量級(jí)的開源框架,具有很高的凝聚力和吸引力,本篇文章帶你了解如何配置數(shù)據(jù)源、注解開發(fā)以及整合Junit
1 測試類中的問題和解決思路
1.1 問題
- 在測試類中,每個(gè)測試方法都有以下兩行代碼:
- ApplicationContext ac = new ClassPathXmlApplicationContext("bean.xml");
- IAccountService as = ac.getBean("accountService",IAccountService.class);
- 這兩行代碼的作用是獲取容器,如果不寫的話,直接會(huì)提示空指針異常。所以又不能輕易刪掉。
1.2 解決思路分析
- 針對上述問題,需要的是程序能自動(dòng)創(chuàng)建容器。
- junit無法知曉是否使用了 spring 框架,無法創(chuàng)建 spring 容器了,但junit 暴露了一個(gè)注解,可以替換掉它的運(yùn)行器。
- 需要依靠 spring 框架提供的運(yùn)行器,可以讀取配置文件(或注解)來創(chuàng)建容器,只需要告訴它配置文件在哪就行了。
2 配置步驟
2.1 第一步:拷貝整合 junit 的必備 jar 包到 lib 目錄
- 此處需要注意的是,導(dǎo)入 jar 包時(shí),需要導(dǎo)入一個(gè) spring 中 aop 的 jar 包。

2.2 第二步:使用@RunWith 注解替換原有運(yùn)行器
@RunWith(SpringJUnit4ClassRunner.class)
public class AccountServiceTest {
}2.3 第三步:使用@ContextConfiguration 指定 spring 配置文件的位置
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations= {"classpath:bean.xml"})
public class AccountServiceTest {
}- @ContextConfiguration 注解:
- locations 屬性:用于指定配置文件的位置。如果是類路徑下,需要用 classpath:表明
- classes 屬性:用于指定注解的類。當(dāng)不使用 xml 配置時(shí),需要用此屬性指定注解類的位置。
2.4 第四步:使用@Autowired 給測試類中的變量注入數(shù)據(jù)
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations= {"classpath:bean.xml"})
public class AccountServiceTest {
@Autowired
private IAccountService as ;
}3 不把測試類配到 xml 中的原因
- 第一:當(dāng)在 xml 中配置了一個(gè) bean,spring 加載配置文件創(chuàng)建容器時(shí),就會(huì)創(chuàng)建對象。
- 第二:測試類只是在測試功能時(shí)使用,而在項(xiàng)目中它并不參與程序邏輯,也不會(huì)解決需求上的問題,所以創(chuàng)建完了,并沒有使用。那么存在容器中就會(huì)造成資源的浪費(fèi)。
到此這篇關(guān)于Java之Spring整合Junit的文章就介紹到這了,更多相關(guān)Spring整合Junit內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot的@ControllerAdvice處理全局異常詳解
這篇文章主要介紹了SpringBoot的@ControllerAdvice處理全局異常詳解,但有時(shí)卻往往會(huì)產(chǎn)生一些bug,這時(shí)候就破壞了返回?cái)?shù)據(jù)的一致性,導(dǎo)致調(diào)用者無法解析,所以我們常常會(huì)定義一個(gè)全局的異常攔截器,需要的朋友可以參考下2024-01-01
關(guān)于Spring Bean實(shí)例過程中使用反射和遞歸處理的Bean屬性填充問題
本文帶領(lǐng)大家一起學(xué)習(xí)下在Spring Bean實(shí)例過程中如何使用反射和遞歸處理的Bean屬性填充,需要在類 AbstractAutowireCapableBeanFactory 的 createBean 方法中添加補(bǔ)全屬性方法,具體操作方法跟隨小編一起學(xué)習(xí)下吧2021-06-06
Java實(shí)現(xiàn)從jar包中讀取指定文件的方法
這篇文章主要介紹了Java實(shí)現(xiàn)從jar包中讀取指定文件的方法,涉及java針對jar文件的讀取及查找相關(guān)操作技巧,需要的朋友可以參考下2017-08-08
Springboot使用Redis中ZSetOperations實(shí)現(xiàn)博客訪問量
在日常的網(wǎng)站使用中,經(jīng)常會(huì)碰到頁面的訪問量,本文主要介紹了Springboot使用Redis中ZSetOperations實(shí)現(xiàn)博客訪問量,具有一定的參考價(jià)值,感興趣的可以了解一下2024-01-01
SpringBoot項(xiàng)目application.yml文件數(shù)據(jù)庫配置密碼加密的方法
這篇文章主要介紹了SpringBoot項(xiàng)目application.yml文件數(shù)據(jù)庫配置密碼加密的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03

