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

您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 >
追求代碼質量: 親身體驗行為驅動開發
作者:網絡轉載 發布時間:[ 2013/2/25 14:28:41 ] 推薦標簽:

清單 25. 如果沒有調用 push 調用 peek,會怎樣?

               
public void shouldReturnNullOnPeekWithoutPush() throws Exception{
 Ensure.that(stStack.peek(), m.is(null));
}


        同樣,不會感到意外。如清單 26 所示,問題出現了。

清單 26. 沒有可執行的內容

               
1) StackBehavior should return null on peek without push:
java.lang.ArrayIndexOutOfBoundsException: -1


        修復這個缺陷的邏輯類似于 pop() 的邏輯,如清單 27 所示。

清單 27. 這個 peek() 需要做一些修復

               
public E peek() {
 if(this.list.size() > 0){
  return this.list.get(this.list.size()-1);
 }else{
  return null;
 }
}


        把我對 Stack 類作出的所有修改和修復綜合起來,可以得到清單 28 中的代碼。

清單 28. 一個可正常工作的棧

               
import java.util.ArrayList;

public class Stack<E> {

 private ArrayList<E> list;

 public Stack() {
  this.list = new ArrayList<E>();
 }

 public void push(E value) {
  if(value == null){
   throw new RuntimeException("Can't push null");
  }else{
   this.list.add(value);
  }
 }

 public E pop() {
  if(this.list.size() > 0){
   return this.list.remove(this.list.size()-1);
  }else{
   throw new RuntimeException("Nothing to pop");
  }
 }

 public E peek() {
  if(this.list.size() > 0){
   return this.list.get(this.list.size()-1);
  }else{
   return null;
  }
 }
}


        在此,StackBehavior 類運行 7 種行為,以確保 Stack 類能按照 Linda 的(和我自己的一點)規范運行。Stack 類 還可能使用某種重構(也許 pop() 方法 應該調用 peek() 進行測試,而不是執行 size() 檢查?),但是由于一直使用了行為驅動過程,我可以很自信地對代碼作出更改。如果出現了問題,很快可以收到通知。

結束語

        您可能已經注意到,本月對行為驅動開發(BDD)的探索中,Linda 實際上是客戶。在這里,可以把 Frank 看作開發人員。如果把這里的領域(即數據結構)換成其它領域(例如一個呼叫中心應用程序),以上應用仍然類似。作為客戶或領域專家的 Linda 指出系統、特性或應用程序應該 執行什么功能,像 Frank 這樣的開發人員則使用 BDD 確保正確理解了她的要求并實現這些需求。

        對于很多開發人員來說,從測試驅動開發轉移到 BDD 是明智的轉變。 如果采用 BDD,不必考慮測試,而只需注意應用程序的需求,并確保應用程序的行為執行它 應該 執行的功能,以滿足那些需求。

        在這個例子中,使用 BDD 和 JBehave 使我可以根據 Linda 的說明輕松地實現一個可正常工作的棧。通過首先 考慮行為,我只需傾聽她的需求,然后相應地構建棧。在此過程中,我還發現了 Linda 沒有提及的關于棧的其他內容。

上一頁1234下一頁
軟件測試工具 | 聯系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 日韩欧美中文字幕在线播放 | 国产综合第一页在线视频 | 国产桃色在线成免费视频 | 99色在线视频 | 国产一级特黄aa毛片 | 国产日韩亚洲欧洲一区二区三区 | 国产1024精品视频专区免费 | 国产成人精品实拍在线 | 亚洲综合网国产福利精品一区 | 天天干天天碰 | 韩国福利视频一区二区 | 中文字幕成人网 | 亚洲激情视频在线播放 | 毛片福利 | 亚洲精品高清中文字幕 | 麻豆国产三级在线观看 | 成人免费视频国产 | 黄色视频毛片 | 免费黄a| 国内外一级毛片 | a一级爱做片免费观看欧美 a一级爱做片免费 | 成年人在线观看网址 | 国产你懂的在线 | 九九视频在线看精品 | 一级欧美| 国产高清一级片 | 欧美成人高清在线视频大全 | 在线韩国伦理片 | 天天弄天天模 | 日本人娇小hd | 欧美精品成人一区二区在线观看 | 欧美高清在线精品一区 | 一个人免费观看日本www视频 | 在线观看免费黄网站 | 色婷婷色综合激情国产日韩 | 麻豆国产视频 | 香蕉视频黄色片 | 欧美黄区| 看日本黄大片在线观看 | 国产成人深夜福利在线观看 | 日韩视频在线观看一区二区 |