搜尋
首頁Javajava教程Java與Spring整合Junit的方法如何實現?

    1 測試類別中的問題和解決想法

    #1.1 問題

    • 在測試類別中,每個測試方法都有以下兩行程式碼:

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

    IAccountService as = ac.getBean("accountService",IAccountService.class);
    • 這兩行程式碼的作用是取得容器,如果不寫的話,直接會提示空指針異常。所以又不能輕易刪掉。

    • 1.2 解決思路分析

    • 針對上述問題,需要的是程式能

      自動建立容器

    junit無法知道是否使用了 spring 框架,無法創建 spring 容器了,但junit 暴露了一個註解,可以替換掉它的運行器。

    • 需要依靠 spring 框架提供的運行器,可以讀取設定檔(或註解)來建立容器,只需要告訴它設定檔在哪裡就行了。

    2 設定步驟Java與Spring整合Junit的方法如何實現?

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

    ##此處需要注意的是,導入jar 包時,需要導入一個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 屬性:用來指定註解的類別。當不使用 xml 配置時,需要用此屬性指定註解類別的位置。
    •  2.4 第四步:使用@Autowired 為測試類別中的變數注入資料
    • @RunWith(SpringJUnit4ClassRunner.class)
      @ContextConfiguration(locations= {"classpath:bean.xml"})
      public class AccountServiceTest {
       
          @Autowired
          private IAccountService as ;
      }

      3 不把測試類別配到xml 中的原因

    ###第一:當在xml 中配置了一個bean,spring 載入設定檔建立容器時,就會建立物件。 ############第二:測試類別只是在測試功能時使用,而在專案中它並不參與程式邏輯,也不會解決需求上的問題,所以創建完了,並沒有使用。那麼存在容器中就會造成資源的浪費。 ##########

    以上是Java與Spring整合Junit的方法如何實現?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

    陳述
    本文轉載於:亿速云。如有侵權,請聯絡admin@php.cn刪除
    如何將Maven或Gradle用於高級Java項目管理,構建自動化和依賴性解決方案?如何將Maven或Gradle用於高級Java項目管理,構建自動化和依賴性解決方案?Mar 17, 2025 pm 05:46 PM

    本文討論了使用Maven和Gradle進行Java項目管理,構建自動化和依賴性解決方案,以比較其方法和優化策略。

    如何使用適當的版本控制和依賴項管理創建和使用自定義Java庫(JAR文件)?如何使用適當的版本控制和依賴項管理創建和使用自定義Java庫(JAR文件)?Mar 17, 2025 pm 05:45 PM

    本文使用Maven和Gradle之類的工具討論了具有適當的版本控制和依賴關係管理的自定義Java庫(JAR文件)的創建和使用。

    如何使用咖啡因或Guava Cache等庫在Java應用程序中實現多層緩存?如何使用咖啡因或Guava Cache等庫在Java應用程序中實現多層緩存?Mar 17, 2025 pm 05:44 PM

    本文討論了使用咖啡因和Guava緩存在Java中實施多層緩存以提高應用程序性能。它涵蓋設置,集成和績效優勢,以及配置和驅逐政策管理最佳PRA

    如何將JPA(Java持久性API)用於具有高級功能(例如緩存和懶惰加載)的對象相關映射?如何將JPA(Java持久性API)用於具有高級功能(例如緩存和懶惰加載)的對象相關映射?Mar 17, 2025 pm 05:43 PM

    本文討論了使用JPA進行對象相關映射,並具有高級功能,例如緩存和懶惰加載。它涵蓋了設置,實體映射和優化性能的最佳實踐,同時突出潛在的陷阱。[159個字符]

    Java的類負載機制如何起作用,包括不同的類載荷及其委託模型?Java的類負載機制如何起作用,包括不同的類載荷及其委託模型?Mar 17, 2025 pm 05:35 PM

    Java的類上載涉及使用帶有引導,擴展程序和應用程序類負載器的分層系統加載,鏈接和初始化類。父代授權模型確保首先加載核心類別,從而影響自定義類LOA

    See all articles

    熱AI工具

    Undresser.AI Undress

    Undresser.AI Undress

    人工智慧驅動的應用程序,用於創建逼真的裸體照片

    AI Clothes Remover

    AI Clothes Remover

    用於從照片中去除衣服的線上人工智慧工具。

    Undress AI Tool

    Undress AI Tool

    免費脫衣圖片

    Clothoff.io

    Clothoff.io

    AI脫衣器

    AI Hentai Generator

    AI Hentai Generator

    免費產生 AI 無盡。

    熱門文章

    R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
    3 週前By尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O.最佳圖形設置
    3 週前By尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O.如果您聽不到任何人,如何修復音頻
    3 週前By尊渡假赌尊渡假赌尊渡假赌
    WWE 2K25:如何解鎖Myrise中的所有內容
    4 週前By尊渡假赌尊渡假赌尊渡假赌

    熱工具

    VSCode Windows 64位元 下載

    VSCode Windows 64位元 下載

    微軟推出的免費、功能強大的一款IDE編輯器

    Dreamweaver CS6

    Dreamweaver CS6

    視覺化網頁開發工具

    WebStorm Mac版

    WebStorm Mac版

    好用的JavaScript開發工具

    Safe Exam Browser

    Safe Exam Browser

    Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

    禪工作室 13.0.1

    禪工作室 13.0.1

    強大的PHP整合開發環境