這是一個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/101
和john.doe/johnny/<WrongUserOrPasswordException>