亚洲好骚综合-亚洲黄色录像-亚洲黄色网址-亚洲黄色网址大全-99久久99久久-99久久99久久精品国产

您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 >
AOP@Work: 對方面進行單元測試
作者:網絡轉載 發布時間:[ 2013/3/12 17:03:58 ] 推薦標簽:

優缺點

使用 AJDT 的 cross-references 視圖檢查橫切規范有三個主要的好處。首 先 ,cross-references 視圖可以在開發方面時馬上給出反饋。其次,它使您可以 容 易地發現難于測試的結果。(要編寫驗證 getWebsite() 沒有 突出顯示的測試 , 需要猜出 getWebsite() 可能會出錯,或者檢查 SearchResult 中每一個 String getter。越不容易出的錯誤,越難很好地測試。)第三,自動生成的視圖可以 驗證正確情況,在代碼中驗證它們是很麻煩的。例如,如果搜索 highlighter 需 要影響 20 個聯結點,那么檢查 cross-references 視圖比為每一個聯結點編寫 測試更容易。

使用視圖驗證的主要缺點是不能自動檢查。它需要程序員的自律。匆忙的程 序 員可能看過圖 2,卻沒有發現問題。(下一個模式展示了對這個問題的部分解決 方案。)另一個問題是橫切視圖只顯示了基于靜態聯結點 shadow 的匹配。換句 話說,如果有依賴于運行時檢查的切點,如 cflow() 或者 if(),那么 cross- references 視圖不能肯定地說聯結點會在運行時匹配,只能說看來如此。

模式 2. 檢查隨橫切比較工具改變

針對 :橫切規范

概述 :利用 AJDT 的橫切比較功能在重構之前或者其他代碼改變前保存項目 的橫切圖。在完成改變后保存另一個圖。(還可以每晚保存一個圖以便比較。) 在橫切比較工具中比較這些圖,以發現受方面影響的聯結點所出現的不希望的改 變。注意在撰寫本文時,只有 AJDT 提供橫切比較工具。

例子:改寫一個切點

假定要改正上一個例子中表現出的問題,決定修改切點以使用 Java 5 注釋 , 如下所示:

public pointcut highlightedTextProperties() :
    execution (@Highlighted public String Highlightable+.*())

然后在源代碼中適當位置上添加注釋,例如:

@Highlighted
 public String getTitle() {
  return title;
 }

下一步是比較在改變前后所抓取的項目快照,并得到如圖 3 所示的結果。如 您所見,重構消除了 getWebsite() 的建議匹配,但是也消除了 getSummary() 的匹配。(它看上去像沒有添加上注釋。)

圖 3. 在橫切比較工具中顯示的改變結果

優缺點

這項技術實際上是對上一項技術的優化。通過只顯示改變,橫切比較工具可 以 幫助防止信息盲點。同時,cross-references 視圖要求選擇需要分析的建議或 者 類,而橫切比較工具使您可以檢查整個項目的改變。

缺點是橫切比較工具在方面影響多個聯結點時會不好用。考慮一個記錄所有 公 共方法的日志。這樣一個方面在哪怕的開發后也會增加十來個新改變,使得 查看其他更重要的改變變得困難了。在真實世界中,橫切比較工具可以有很多配 置,對某些方面的改變發出警報,而忽略與其他方面有關的改變。

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 突出顯示、純文本的全部大 寫突出顯示等等)。

上一頁12345下一頁
軟件測試工具 | 聯系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 亚洲国产精品高清在线一区 | 欧美香蕉在线 | 国产东北男同志videos网站 | 日日操天天 | 久久丝袜视频 | 青青草国产三级精品三级 | 亚洲免费视频网址 | s8国产成人精品视频 | 草草国产成人免费视频 | 亚洲性人人天天夜夜摸 | www.五月激情| 欧美综合区 | 国产欧美一区二区三区观看 | 好男人午夜www视频在线观看 | 精品成人在线观看 | 最近中文字幕完整国语 | 日韩欧美视频在线一区二区 | 草草视频手机在线观看视频 | 日韩伦理片在线观看 | 国产成人免费午夜在线观看 | 国产成人夜间影院在线观看 | 51av视频| 日韩欧美亚洲综合 | 久久网色 | 操片免费看 | 日本三级免费观看 | 波多野结衣免费线在线 | 无毛片 | 欧美精品亚洲 | 久久一本综合 | 中文字幕在线免费播放 | h视频在线观看视频观看 | 日韩伦理在线免费观看 | 免费观看黄色视屏 | 香蕉久久夜色精品国产小优 | 日韩精品一区二区三区中文 | 激情文学综合丁香 | 色中文网| 亚洲欧美激情综合首页 | 日韩毛片在线看 | 亚洲视频日韩视频 |