首頁 > Java > java教程 > 主體

Java與Spring整合Junit的方法如何實現?

WBOY
發布: 2023-04-21 11:13:07
轉載
1198 人瀏覽過

    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中文網其他相關文章!

    相關標籤:
    來源:yisu.com
    本網站聲明
    本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
    熱門教學
    更多>
    最新下載
    更多>
    網站特效
    網站源碼
    網站素材
    前端模板
    關於我們 免責聲明 Sitemap
    PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!