Java之Spring整合Junit
更新時間:2023年04月06日 11:54:07 作者:JiangTao_xlili
Java Spring框架是一個輕量級的開源框架,具有很高的凝聚力和吸引力,本篇文章帶你了解如何配置數(shù)據(jù)源、注解開發(fā)以及整合Junit
1 測試類中的問題和解決思路
1.1 問題
- 在測試類中,每個測試方法都有以下兩行代碼:
- ApplicationContext ac = new ClassPathXmlApplicationContext("bean.xml");
- IAccountService as = ac.getBean("accountService",IAccountService.class);
- 這兩行代碼的作用是獲取容器,如果不寫的話,直接會提示空指針異常。所以又不能輕易刪掉。
1.2 解決思路分析
- 針對上述問題,需要的是程序能自動創(chuàng)建容器。
- junit無法知曉是否使用了 spring 框架,無法創(chuàng)建 spring 容器了,但junit 暴露了一個注解,可以替換掉它的運行器。
- 需要依靠 spring 框架提供的運行器,可以讀取配置文件(或注解)來創(chuàng)建容器,只需要告訴它配置文件在哪就行了。
2 配置步驟
2.1 第一步:拷貝整合 junit 的必備 jar 包到 lib 目錄
- 此處需要注意的是,導(dǎo)入 jar 包時,需要導(dǎo)入一個 spring 中 aop 的 jar 包。
2.2 第二步:使用@RunWith 注解替換原有運行器
@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 配置時,需要用此屬性指定注解類的位置。
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 中配置了一個 bean,spring 加載配置文件創(chuàng)建容器時,就會創(chuàng)建對象。
- 第二:測試類只是在測試功能時使用,而在項目中它并不參與程序邏輯,也不會解決需求上的問題,所以創(chuàng)建完了,并沒有使用。那么存在容器中就會造成資源的浪費。
到此這篇關(guān)于Java之Spring整合Junit的文章就介紹到這了,更多相關(guān)Spring整合Junit內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java SpringSecurity入門案例與基本原理詳解
這篇文章主要介紹了java中Spring Security的實例詳解的相關(guān)資料,spring security是一個多方面的安全認(rèn)證框架,提供了基于JavaEE規(guī)范的完整的安全認(rèn)證解決方案,需要的朋友可以參考下2021-09-09Mybatis之通用Mapper動態(tài)表名及其原理分析
這篇文章主要介紹了Mybatis之通用Mapper動態(tài)表名及其原理分析,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-08-08Java反射之靜態(tài)加載和動態(tài)加載的簡單實例
下面小編就為大家?guī)硪黄狫ava反射之靜態(tài)加載和動態(tài)加載的簡單實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-10-10SpringBoot數(shù)據(jù)訪問的實現(xiàn)
本文主要介紹了SpringBoot數(shù)據(jù)訪問的實現(xiàn),引入各種xxxTemplate,xxxRepository來簡化我們對數(shù)據(jù)訪問層的操作,感興趣的可以了解一下2023-11-11