2009-02-20 35 views
9

我正在編寫一個非常複雜的UI應用程序,並嚴重依賴於AJAX,DOM和圖像操作。如何更好地爲Web應用程序執行單元測試

是否有任何標準做法(我不需要工具)可以遵循以減少錯誤?

+0

很棒的問題。我一直在想同樣的事情。 – RSolberg 2009-02-20 17:16:49

+0

這是一個非常模糊的問題。你的問題通常可以用一系列工具來回答,但是你聽起來像是有一些神奇的方法可以讓代碼中的bug減少。你到底在問什麼? – ryeguy 2009-02-20 17:17:11

回答

5

將邏輯和UI部分分開 - 在頁面後面的代碼中沒有所有的業務邏輯和複雜的代碼。而是將它們從標準層結構(數據層,業務規則/邏輯層,UI層)構建起來。這將確保您想要測試的邏輯代碼不引用表單,而是使用容易進行單元測試的類。

對於一個非常簡單的例子,沒有代碼,這是否:

string str = TextBox1.Text.ToString(); 
//do whatever your code does 
TextBox2.Text = str; 

相反的邏輯提取到一個單獨的類與方法:

TextBox2.Text = DoWork(TextBox1.Text.ToString()); 

public class Work 
{ 
    public string DoWork(string str) 
    { 
     //do work 
     return str2; 
    } 
} 

這樣你就可以寫單元測試以驗證DoWork是否返回了正確的值:

string return = DoWork("TestThisString"); 

現在所有的邏輯都是單元測試表,只有代碼可以直接在您的UI層中引用頁面。

8

一個非常簡單的技術就是煙霧測試,您可以在其中自動點擊所有應用程序。如果腳本運行並且日誌中的任何位置沒有錯誤,則至少有一個定義的質量級別。

這種技術實際上捕捉到相當數量的迴歸中斷,並且比聽起來更有效。我們爲此使用selenium

2

Watin是一個很好的工具。

1

一個簡單的清單(即使在一張紙上!)是確保您永遠不會跳過重要事情的最佳方式。這是一個很好的「煙霧測試」,沒有任何「標準」已被打破。

相關問題