2014-02-18 67 views
-1

我是TDD的新手,我正在閱讀很多書來掌握TDD的概念。ASP.NET的TDD單元測試Webforms

我有幾個問題,如果有人可以指導我。比方說,如果我爲登錄驗證創建單元測試,我必須先插入一個虛擬用戶,然後根據我插入的測試用戶測試這些方法嗎?

爲了測試登錄認證業務邏輯,這裏有一些測試方法,我在我的腦海裏:

1- Authenticate_UserId_or_Password_ShouldNotbeNull() 

2- Authenticate_UserId_And_Password_ShouldreturnValidUser() 

#1,我創建了一個測試方法:

[Test] 
public void Authenticate_UserId_or_Password_ShouldNotbeNull() 
{ 

LoginService login = new LoginService(); 
string strUserId="UserIdTest"; 
string strPassword="PasswordTest"; 

login.Authenticate(strUserId, strPassword); 

// What assert method should I use to test it? 

} 

還有一個問題,我正在讀關於嘲笑。嘲笑代理模式的另一個名稱?

+0

如果您不需要模擬一個號碼的情況下,在案件編號2我認爲你需要。但這取決於。你能提供測試方法嗎?例如,如果您使用「Membership」類(如ASP.NET帳戶控制器中經常使用的那樣),則很難對其進行測試(因爲它是靜態的)。如果是這樣,我會建議從另一個角度開始:-) – core

+0

嗯,我沒有使用會員類。我有我自己的自定義登錄系統。你能否給我提供數字1的詳細答案。我如何爲Authenticate_UserId_or_Password_ShouldNotbeNull()創建單元測試() – fais

+0

感謝John爲改進問題。 – fais

回答

0

一般而言,您不想在用戶界面上使用TDD。如果你在UI和業務邏輯之間保持清晰的分離,那麼你可以更容易地測試業務邏輯,這是更可能中斷的部分。

其他測試技術可以用來測試用戶界面,雖然這是仍然不太適合TDD。

+0

我沒有在UI層上使用TDD。我正在嘗試通過TDD技術創建業務邏輯層。它也是一個webform應用程序。我知道沒有TDD,我可以輕鬆實現它。 – fais

+0

但是你看,在這種情況下,你不需要指定你正在使用Web Forms項目,或者甚至是ASP.NET。業務邏輯應該獨立於您是否使用ASP.NET。通過包含它是ASP.NET的事實,你讓讀者相信它認爲它是ASP.NET。 –

+0

我同意並非常感謝您的幫助。讓我進一步編輯問題。 – fais