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

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

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

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

    AOP@Work: 對方面進行單元測試

    發布: 2008-10-14 09:20 | 作者: 不詳 | 來源: 測試時代采編 | 查看: 81次 | 進入軟件測試論壇討論

    領測軟件測試網

    的改變變得困難了。在真實世界中,橫切比較工具可以有很多配置,對某些方面的改變發出警報,而忽略與其他方面有關的改變。

    III. 使用委派

    方面可以并且通常用普通對象實現橫切行為?梢岳眠@種關注點的分離分別測試橫切規范及它們的行為。下面兩個模式展示如何使用委派和 mock 對象檢查方面的這兩個部分。

    模式 1. 測試委派的建議邏輯

    針對 :橫切功能

    概述 :如果還沒有做的話,可以將一些或者全部建議邏輯委派給其他可以直接測試的類。(如果愿意的話,還可以將行為委派給方面的公共方法。)

    例子:將突出顯示邏輯轉移到其他類

    要更好地在隔離狀態下測試突出顯示邏輯,可以將它轉移到一個專門的工具類中:


      private HighlightUtil highlightUtil = new CssHighlightUtil();
     
      public void setHighlightUtil(HighlightUtil highlightUtil){
      this.highlightUtil = highlightUtil;
      }
     
      String around(Highlightable highlightable) :
          highlightedTextProperties() && this(highlightable)
      {
        String result = proceed(highlightable);
        return highlightUtil.highlight(result, highlightable.getHighlightedWords());
      }
        
     通過抽取突出顯示邏輯,可以編寫調用 HighlightUtil 類的方法的單元測試。

    優缺點

    這項技術使得在域邏輯中產生邊緣用例更容易了。它還有助于隔離問題,如果 helper 類的測試失敗,就會知道是它而不是方面有問題。最后,委派邏輯通常會得到更干凈的關注點分離。在這個例子中,通過將文字突出顯示邏輯抽取到其它類,它變成系統其他部分可以獨立于這個方面使用的一項操作。從而使方面獲得了使用不同的突出顯示策略的靈活性(HTML 的 CSS 突出顯示、純文本的全部大寫突出顯示等等)。

    不利的一面是,這種技術在邏輯難于抽取時就無能為力了。例如,最好讓簡單的邏輯留在原處。同時,一些方面將狀態存儲到本地或者它們建議的類的 ITD 中。狀態存儲通常構成了方面邏輯的簽名部分,它并不總能干凈地轉移到 helper 類中。

    模式 2. 使用模擬對象記錄建議觸發

    針對 :橫切規范和功能

    概述 :這項技術補充了前一項技術。如果將建議行為抽取到另一個類中,那么就可以用一個 mock 對象替代 helper 類對象,并驗證建議是否在正確的聯結點上觸發。還可以驗證建議將正確的上下文傳遞給了 helper 類,不管是直接用建議參數還是用之前存儲的狀態。

    注: 如果需要對 mock 對象的介紹,請參閱 參考資料。

    例子:用一個 mock HighlightUtil 測試 Highlighter 方面

    我們已經看到了方面如何委派到另一個類中以處理實際的文字突出顯示。這使得在測試中向方面注入不同的 highlighter 實現成為可能。清單 3 中的代碼利用 JMock 庫做到了這一點。(請參閱 參考資料。)


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


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(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>