18 |
"This field is required" ; |
19 |
error = false ; |
20 |
} |
21 |
|
22 |
return error; |
23 |
}; |
在清單 2 中,ApplicationUtil 對象提供一個簡單驗證:用戶名和密碼字段都已填充。如果某個字段為空,就會顯示一條錯誤消息:This field is required。
上面的代碼能夠在 Internet Explorer 8 和 Safari 5.1 上工作,但無法在 Firefox 3.6 上工作,原因是 Firefox 不支持 innerText 屬性。通常,(上述代碼和其他類似 JavaScript 代碼中的)主要問題是不容易發現編寫的 JavaScript 代碼是不是跨瀏覽器兼容的。
這個問題的一個解決方案是進行自動化單元測試,檢查代碼是不是跨瀏覽器兼容。
JsTestDriver
JsTestDriver library 是最好的 JavaScript 單元測試框架之一,它為 JavaScript 代碼提供了跨瀏覽器測試。圖 1 展示了 JsTestDriver 的架構。
圖 1. JsTestDriver 架構
客戶端(命令行)需要以下兩個主要項目:
JavaScript 文件,即源文件和測試文件
配置文件,用于組織源文件和測試文件的加載
這個架構比較靈活,允許單個服務器從網絡中的其他機器捕獲任意數量的瀏覽器。例如,如果您的代碼在 Linux 上運行但您想針對另一個 Windows 機器上的 Microsoft Internet Explorer 運行您的測試用例,那么這個架構很有用。
要使用 JsTestDriver 庫,請先下載最新版的 JsTestDriver 1.3.2。
jsTestDriver 是開源項目jsTestDriver 是 Apache 2.0 許可 下的一個開源項目,托管在 Google Code 上,后者是一個類似于 SourceForge 的項目存儲庫。只要使用 Open Source Initiative 批準的 許可,開發人員就能在這個存儲庫中創建和管理公共項目。
還有許多其他 JavaScript 單元測試工具,請參見下面的 參考資料 部分中的其他工具,比如 Dojo Objective Harness (DOH)。
編寫單元測試代碼
現在開始編寫 JavaScript 測試用例。為簡單起見,我將測試以下用例:
用戶名和密碼字段均為空。
用戶名為空,密碼不為空。
用戶名不為空,密碼為空。
清單 3 顯示了表示 TestCase 對象的 ApplicationUtilTest 對象的部分代碼。
清單 3. ApplicationUtilTest 對象代碼的一部分
查看源代碼
打印幫助
01 |
ApplicationUtilTest = TestCase ( "ApplicationUtilTest" ); |
02 |
|
03 |
ApplicationUtilTest.prototype.setUp = function () { |
原文轉自:http://www.anti-gravitydesign.com