• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 高效的JavaScript代碼單元測試方法(4)

    發表于:2013-01-11來源:web開發社區作者:Hazem Saleh點擊數: 標簽:JavaScript
    18 This field is required ; 19 error = false ; 20 } 21 22 return error; 23 }; 在清單 2 中,ApplicationUtil 對象提供一個簡單驗證:用戶名和密碼字段都已填充。如果某個字段
    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 測試用例運行程序代碼加載到瀏覽器中??梢酝ㄟ^命令行捕獲瀏覽器,也可以通過將瀏覽器指向服務器 URL 來捕獲瀏覽器。一旦捕獲到瀏覽器,該瀏覽器就被稱為從屬瀏覽器。服務器可以加載 JavaScript 代碼,在每個瀏覽器上執行測試用例,然后將結果返回給客戶端。

      客戶端(命令行)需要以下兩個主要項目:

      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.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>