最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SSM框架中測試單元的使用 spring整合Junit過程詳解

 更新時間:2019年09月27日 10:02:54   作者:BUG不報錯?  
這篇文章主要介紹了SSM框架中測試單元的使用 spring整合Junit過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

測試類中的問題和解決思路

問題

在測試類中,每個測試方法都有以下兩行代碼:

ApplicationContext ac = new ClassPathXmlApplicationContext("bean.xml"); 

IAccountService as = ac.getBean("accountService",IAccountService.class);

這兩行代碼的作用是獲取容器,如果不寫的話,直接會提示空指針異常。所以又不能輕易刪掉。

解決思路分析

針對上述問題,我們需要的是程序能自動幫我們創(chuàng)建容器。一旦程序能自動為我們創(chuàng)建 spring 容器,我們就無須手動創(chuàng)建了,問題也就解決了。

我們都知道,junit 單元測試的原理(在 web 階段課程中講過),但顯然,junit 是無法實現(xiàn)的,因為它自己都無法知曉我們是否使用了 spring 框架,更不用說幫我們創(chuàng)建 spring 容器了。不過好在,junit 給我們暴露了一個注解,可以讓我們替換掉它的運行器。

這時,我們需要依靠 spring 框架,因為它提供了一個運行器,可以讀取配置文件(或注解)來創(chuàng)建容器。我們只需要告訴它配置文件在哪就行了。

配置步驟

第一步:拷貝整合 junit的必備 jar包到 lib目錄

此處需要注意的是,導(dǎo)入 jar 包時,需要導(dǎo)入一個 spring 中 aop 的 jar 包。

第二步:使用@RunWith注解替換原有運行器

/**
* 測試類
* @Version 1.0
*/ @RunWith(SpringJUnit4ClassRunner.class) public class AccountServiceTest {
}

第三步:使用@ContextConfiguration指定 spring配置文件的位置

/**
*/ @RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations= {"classpath:bean.xml"})
public class AccountServiceTest {
}

@ContextConfiguration 注解:

locations 屬性:用于指定配置文件的位置。如果是類路徑下,需要用 classpath:表明classes 屬性:用于指定注解的類。當(dāng)不使用 xml 配置時,需要用此屬性指定注解類的位置。

第四步:使用@Autowired給測試類中的變量注入數(shù)據(jù)

/**
*/ @RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations= {"classpath:bean.xml"})
public class AccountServiceTest {
@Autowired
private IAccountService as ;
}

為什么不把測試類配到 xml中

在解釋這個問題之前,先解除大家的疑慮,配到 XML 中能不能用呢? 答案是肯定的,沒問題,可以使用。

那么為什么不采用配置到 xml 中的方式呢? 這個原因是這樣的:

第一:當(dāng)我們在 xml 中配置了一個 bean,spring 加載配置文件創(chuàng)建容器時,就會創(chuàng)建對象。

第二:測試類只是我們在測試功能時使用,而在項目中它并不參與程序邏輯,也不會解決需求上的問題,所以創(chuàng)建完了,并沒有使用。那么存在容器中就會造成資源的浪費。

所以,基于以上兩點,我們不應(yīng)該把測試配置到 xml 文件中。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • MybatisPlus 自定義.vm模板的生成

    MybatisPlus 自定義.vm模板的生成

    為更加快捷方便的開發(fā)代碼,使用MybatisPlus的代碼自動生成功能,將一些繁瑣的操作自動生成,本文主要介紹了MybatisPlus 自定義.vm模板的生成,感興趣的可以了解一下
    2024-03-03
  • MyBatis映射文件resultMap元素中使用多個association的方法

    MyBatis映射文件resultMap元素中使用多個association的方法

    這篇文章主要介紹了MyBatis映射文件resultMap元素中使用多個association的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • 帶你了解JAVA中的一些鎖概念

    帶你了解JAVA中的一些鎖概念

    今天小編就為大家分享一篇關(guān)于Java分布式鎖的概念與實現(xiàn)方式詳解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2021-08-08
  • 在Intellij IDEA中使用Debug(圖文教程)

    在Intellij IDEA中使用Debug(圖文教程)

    下面小編就為大家?guī)硪黄贗ntellij IDEA中使用Debug(圖文教程)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • 一文搞懂Java創(chuàng)建線程的五種方法

    一文搞懂Java創(chuàng)建線程的五種方法

    本文主要為大家詳細(xì)介紹一下Java實現(xiàn)線程創(chuàng)建的五種常見方式,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)有一定的幫助,感興趣的可以跟隨小編學(xué)習(xí)一下
    2022-06-06
  • SpringBoot整合Mysql和Redis的詳細(xì)過程

    SpringBoot整合Mysql和Redis的詳細(xì)過程

    這篇文章主要介紹了SpringBoot整合Mysql和Redis的示例代碼,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-02-02
  • Java中synchronized關(guān)鍵字修飾方法同步的用法詳解

    Java中synchronized關(guān)鍵字修飾方法同步的用法詳解

    synchronized可以用來同步靜態(tài)和非靜態(tài)方法,下面就具體來看一下Java中synchronized關(guān)鍵字修飾方法同步的用法詳解:
    2016-06-06
  • Java泛型類型擦除

    Java泛型類型擦除

    這篇文章主要為大家詳細(xì)介紹了Java泛型類型擦除,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • SpringBoot外部化配置示例解析

    SpringBoot外部化配置示例解析

    這篇文章主要介紹了SpringBoot外部化配置示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • Java去掉字符串最后一個逗號的方法

    Java去掉字符串最后一個逗號的方法

    Java中去掉字符串的最后一個逗號有多種實現(xiàn)方法,不同的方法適用于不同的場景,本文通過實例代碼介紹Java去掉字符串最后一個逗號的相關(guān)知識,感興趣的朋友一起看看吧
    2023-12-12

最新評論

鹿邑县| 明光市| 洛川县| 岳阳市| 绥德县| 逊克县| 和顺县| 读书| 邯郸县| 阿拉善右旗| 镇赉县| 金溪县| 新泰市| 调兵山市| 综艺| 库尔勒市| 格尔木市| 广南县| 昆明市| 凤庆县| 清丰县| 清水河县| 岳池县| 桦甸市| 钦州市| 昌平区| 梁平县| 光泽县| 博乐市| 长岭县| 河池市| 布尔津县| 密山市| 东源县| 福贡县| 朝阳区| 东宁县| 徐州市| 新泰市| 岳阳市| 枝江市|