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

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

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

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

    使用配置文件定義 Mock 對象,創建高效、靈活的測試用例

    發布: 2009-3-06 09:20 | 作者: 不詳 | 來源: 測試時代采編 | 查看: 67次 | 進入軟件測試論壇討論

    領測軟件測試網 本文主要討論如何利用配置文件對 Mock 對象以及它的行為進行描述,從而分離測試數據和代碼,創建高效、靈活的測試用例。同時,本文給出了一套基于開源項目 EasyMock 的實現,并通過一個示例來說明如何利用這一實現編寫測試用例。

            使用 Mock 方法能夠模擬協同模塊或領域對象,從而把測試與測試邊界以外的對象隔離開。使單元測試順利進行。然而,Mock 方法在輔助測試的同時,也給開發測試人員帶來額外的編碼工作。另外,由于 Mock 對象本身并不能對測試數據進行管理,因此測試數據的變動和 Mock 對象本身的變動,可能就會極大的增加編譯和部署的時間。

            本文提出一種利用 XML 文件對 Mock 對象進行配置的機制,并在開源項目 EasyMock 的基礎上實現了這種機制。實際上,讀者可以基于任何的自己熟悉的 xMock 項目來實現這里的思想。

    1.Mock對象的創建方法

            開發和測試人員在利用 Mock 方法進行單元測試時發現,編寫自定義 Mock 對象會帶來大量額外的編碼工作:如果為測試中用到的每一個協同模塊或領域對象手動編寫 Mock 對象,最終的結果將是 Mock 對象的數目隨著系統中實際對象數目的增長而增長。此外,這些為創建 Mock 對象而編寫的代碼也很有可能引入錯誤。

            目前,由許多開源項目對動態構建 Mock 對象提供了支持,這些項目能夠根據現有的接口或類動態生成 Mock 對象,從而避免了編寫自定義的 Mock 對象,這樣不僅能減少一定的編碼工作,也可以降低錯誤引入的可能。

            EasyMock 就是這些開源框架中的一個,它是一套通過簡單的方法對于給定的接口生成 Mock 對象的類庫。它提供對接口的模擬,能夠通過錄制、回放、檢查三個步驟來完成大體的測試過程。EasyMock 可以驗證方法的調用種類、次數和順序,可以令 Mock 對象返回指定的值或拋出指定異常。通過 EasyMock,開發或測試人員能夠比較方便的創建 Mock 對象,在一定程度上減少了創建 Mock 對象所帶來的工作量。

    2.EasyMock 使用示例

            EasyMock 的使用方法和原理的詳細說明請參見 "EasyMock 使用方法和原理剖析" 一文。在這里,我們僅以 HttpServletRequest 為例對 EasyMock 的功能做簡單說明。

            在部署到 Servlet 容器之前,需要和 HttpServletRequest 進行交互的模塊可以通過構建 Mock 對象的方式進行單元測試。下面是使用 EasyMock(version 2.3)構建 Mock 對象進行簡單測試的例子:


    清單1:EasyMock 示例
    public class HttpServletRequestUtil {
      public static boolean validate(HttpServletRequest request) {
        String host = request.getHeader("Host");
        return host.startsWith("www.ibm.com");
      }
    }
    public class HttpServletRequestTestCase extends TestCase {
      public void testHttpSevletRequest() {
        HttpServletRequest mockRequest = createMock(HttpServletRequest.class);
        mockRequest.getHeader("Host");
        expectLastCall().andReturn("www.ibm.com:80").times(1);
       
      

    延伸閱讀

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

    TAG: Mock MOCK 定義 對象 文件

    21/212>

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