• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    使用 Spring 2.5 TestContext 測試框架

    發布: 2008-6-24 10:33 | 作者: 不詳 | 來源: 測試時代編輯整理 | 查看: 239次 | 進入軟件測試論壇討論

    領測軟件測試網

    概述

    Spring 2.5 相比于 Spring 2.0 所新增的最重要的功能可以歸結為以下 3 點:

    基于注解的 IoC 功能;
    基于注解驅動的 Spring MVC 功能;
    基于注解的 TestContext 測試框架。
    Spring 推薦開發者使用新的基于注解的 TestContext 測試框架,本文我們將對此進行詳細的講述。

    低版本的 Spring 所提供的 Spring 測試框架構在 JUnit 3.8 基礎上擴展而來,它提供了若干個測試基類。而 Spring 2.5 所新增的基于注解的 TestContext 測試框架和低版本的測試框架沒有任何關系。它采用全新的注解技術可以讓 POJO 成為 Spring 的測試用例,除了擁有舊測試框架所有功能外,TestContext 還添加了一些新的功能,TestContext 可以運行在 JUnit 3.8、JUnit 4.4、TestNG 等測試框架下。

    直接使用 JUnit 測試 Spring 程序存在的不足

    在拙作《精通 Spring 2.x — 企業應用開發詳解》一書中,筆者曾經指出如果直接使用 JUnit 測試基于 Spring 的程序,將存在以下 4 點明顯的不足:

    導致 Spring 容器多次初始化問題:根據 JUnit 測試用例的調用流程,每執行一個測試方法都會重新創建一個測試用例實例并調用其 setUp() 方法。由于在一般情況下,我們都在 setUp() 方法中初始化 Spring 容器,這意味著測試用例中有多少個測試方法,Spring 容器就會被重復初始化多少次。
    需要使用硬編碼方式手工獲取 Bean:在測試用例中,我們需要通過 ApplicationContext.getBean() 的方法從 Spirng 容器中獲取需要測試的目標 Bean,并且還要進行造型操作。
    數據庫現場容易遭受破壞:測試方法可能會對數據庫記錄進行更改操作,破壞數據庫現場。雖然是針對開發數據庫進行測試工作的,但如果數據操作的影響是持久的,將會形成積累效應并影響到測試用例的再次執行。舉個例子,假設在某個測試方法中往數據庫插入一條 ID 為 1 的 t_user 記錄,第一次運行不會有問題,第二次運行時,就會因為主鍵沖突而導致測試用例執行失敗。所以測試用例應該既能夠完成測試固件業務功能正確性的檢查,又能夠容易地在測試完成后恢復現場,做到踏雪無跡、雁過無痕。
    不容易在同一事務下訪問數據庫以檢驗業務操作的正確性:當測試固件操作數據庫時,為了檢測數據操作的正確性,需要通過一種方便途徑在測試方法相同的事務環境下訪問數據庫,以檢查測試固件數據操作的執行效果。如果直接使用 JUnit 進行測試,我們很難完成這項操作。
    Spring 測試框架是專門為測試基于 Spring 框架應用程序而設計的,它能夠讓測試用例非常方便地和 Spring 框架結合起來,以上所有問題都將迎刃而解。

    一個需要測試的 Spring 服務類

    在具體使用 TextContext 測試框架之前,我們先來認識一下需要測試的 UserService 服務類。UserService 服務類中擁有一個處理用戶登錄的服務方法,其代碼如下所示:


    清單1. UserService.java 需要測試的服務類
                   
    package com.baobaotao.service;

    import com.baobaotao.domain.LoginLog;
    import com.baobaotao.domain.User;
    import com.baobaotao.dao.UserDao;
    import com.baobaotao.dao.LoginLogDao;

    public class UserService{

        private UserDao userDao;
        private LoginLogDao loginLogDao;

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    TAG: spring Spring 框架 TestContext


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>