Fitnesse之框架介紹(二)

本篇將重點介紹Fitnesse測試引擎slim, slim是(simple list Invocation method)的縮寫,使用來代替的fit的測試引擎,不同於fit的是,slim將html的解析,比較以及顏色的改變都放在了fitnesse上面去完成,而不是像fit一樣放在被測系統這一端去完成,slim是一個自定義的協議,是一個準RPC協議,通過此協議fitnesse可以驅動被測系統的方法。
下圖是slim源碼的結構

其中核心的包是fitnesse.slim此包爲slim協議的核心,fitnesse.slim.converters此包爲slim中變量參數轉換器以及fitnesse.slimTables此包爲slim中表格類型。
如果我們要使用slim作爲測試引擎,那麼必須在wiki頁面上定義測試類型
!define TEST_SYSTEM {slim}
slim本身總共包括10種表格類型,首先介紹decision table:
我們經常使用decision table作爲一個真假表

該測試用例對應的測試代碼如下所示:
public class ShouldIBuyMilk {
  private int dollars;
  private int pints;
  private boolean creditCard;

  public void setCashInWallet(int dollars) {
    this.dollars = dollars;
  }

  public void setPintsOfMilkRemaining(int pints) {
    this.pints = pints;
  }

  public void setCreditCard(String valid) {
    creditCard = "yes".equals(valid);
  }

  public String goToStore() {
    (pints == 0 && (dollars > 2 || creditCard)) ? "yes" : "no";
  }
首先看錶格的第一行should I buy milk對應測試代碼ShouldIBuyMilk測試類,再看錶格第二行第一列cash in wallet對應測試代碼setCashInWallet方法,第二列credit card對應測試代碼setCreditCard,以此類推後面幾列,我們看到最後一列有點比前面幾列多了一個?號,這個問號表示最後一列是一個方法,也就是我們需要得到的結果,前面幾列表示參數,所以他們需要在測試代碼中加上set。從表格的第三行開始就是我們的測試用例參數,總共8個測試用例在一張decision表格中就全部描述完成,當我們點擊Test按鈕就可以得到以下結果:

我們可以看到從第三行開始綠色的表示通過的case,紅色的表示失敗的case並且會有實際值顯示出來,這樣我們在一次執行中就完成了8個case的執行。下一節中我會重點剖析decision表格的源碼結構。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章