2010-06-20 28 views
2

這是一個FitNesse初學者的問題,與我無關。 Gojko Adzic在他的書Test Driven .NET Development with FitNesse中提供了一些關於減少測試代碼的基本技巧。有一種方法叫做LogIn,它基於用戶名和密碼,返回玩家的ID或者在沒有這樣的註冊玩家時拋出異常。下面是測試代碼的最初版本:FitNesse中的異常處理

public class CheckLogIn : fit.ColumnFixture 
{ 
    public string username; 
    public string password; 

    public int LoggedInAsPlayerId() 
    { 
     try 
     { 
      SetUpTestEnvironment.playerManager.LogIn(username, password); 
      return true; 
     } 
     catch (Exception) 
     { 
      return false; 
     } 
    } 
} 

這是然後用較短的版本替換:

public class CheckLogIn : fit.ColumnFixture 
{ 
    public string username; 
    public string password; 

    public int LoggedInAsPlayerId() 
    { 
     return SetUpTestEnvironment.playerManager.LogIn(username, password); 
    } 
} 

現在第二個測試有如果返回正確的ID驗證的一個額外的好處,但它不允許您檢查系統是否拒絕未知用戶/錯誤密碼。 是否有任何特殊值可用於列中以指示異常?還是必須將兩種測試結合起來以涵蓋所有情況?我記得,雖然在這個時刻模糊不清,但是有一種處理異常的單元測試模式,但我確定有人已經問過它,所以我不想重複。除非社區可以這麼做,否則請建議測試此類方法的最佳做法。

在情況下,我沒有說清楚:

說我有一個登錄玩家:john.doe/test123/101(用戶名/密碼/ ID)。組合的兩個我要測試的系統免受是john.doe/test123/101john.doe/johnny/<WrongUserOrPasswordException>

回答

0

有兩個固定的關鍵字,允許檢查例外:

  • error - 當異常應在測試過程中被拋出
  • exception - 檢查特定的異常

這實際上是很好的書following page解釋...我的壞沒有注意到它馬上。也許有人會發現這個信息很有用,所以我沒有刪除這個問題。