• <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進行單元測試的工具(3)

    發表于:2012-11-29來源:IBM作者:不詳點擊數: 標簽:JavaScript
    該示例移動了設置部分的斷言所使用的值,以避免在測試的邏輯中使用這些值。 QUnit 還通過 asyncTest() 函數提供對異步測試的支持,如果您使用 Asynchronou

      該示例移動了設置部分的斷言所使用的值,以避免在測試的邏輯中使用這些值。

      QUnit 還通過 asyncTest() 函數提供對異步測試的支持,如果您使用 Asynchronous JavaScript and XML (Ajax),這是非常有用的特性。在這樣的環境中,expect() 函數可以讓你輕松地驗證測試中運行的斷言數量。

      回頁首

      YUI Test:獨立的單元測試模塊

      YUI Test 是 YUI 庫(Yahoo!)的一個組件,是一個可擴展而完整的單元測試框架。如果要使用 YUI Test,需要:

      將 YUI 導入 HTML 運行程序,如下所示。

    <script src="http://yui.yahooapis.com/3.4.1/build/yui/yui-min.js"></script> 

      如以上代碼所示,此樣例使用了 YUI Test 第 3 版本。

      在測試腳本文件中,實例化 YUI 函數。加載所需的模塊,test 和 console,如清單 11 所示。

      清單 11.下載 test 和 console YUI 模塊

    				
    YUI().use("test", "console", function (Y) {
         // Test cases go here
    });
    

      test 模塊顯然是用于測試的。console 模塊并不是強制性的,但本示例將用它來打印結果。測試用例將會進入回調中,并以全局的 Y 實例作為參數。

      YUI Test 使用 Y.Test.Case() 構造函數實例化新測試用例,使用 Y.Test.Suite() 構造函數來實例化測試套件。測試套件與 JUnit 類似,包含若干個測試用例??梢允褂?add() 方法將測試用例添加到測試套件中。

      我們使用 YUI test 重新測試 清單 5 中的源代碼。清單 12 顯示了如何創建測試用的套件和測試用例。

      清單 12. 測試套件和用例

    				
    YUI().use("test", "console", function (Y) {
    	
         var suite = new Y.Test.Suite("Temperature conversion suite");
    
         //add a test case
         suite.add(new Y.Test.Case({
             name:"Temperature conversion?
         )); 
    });
    

      清單 12 生成了一個名為 Temperature conversion suite 的套件和一個名為 Temperature conversion 的測試用例?,F在,可以將測試方法寫入對象文本中,作為參數傳遞給 Y.Test.Case 構造函數,如清單 13 所示。

      清單 13. 測試用例與測試方法

    				
    suite.add(new Y.Test.Case({
        name:"Temperature conversion",
    
        setUp : function () {
            this.celsius1 = 20;
            this.celsius2 = 30;
    		
            this.fahrenheit1 = 68;
            this.fahrenheit2 = 86;
        },
    
        testConversionCtoF: function () {
            Y.Assert.areEqual(this.fahrenheit1,         
    convertFromCelsiusToFahrenheit(this.celsius1));
            
            Y.Assert.areEqual(this.fahrenheit2, 
    convertFromCelsiusToFahrenheit(this.celsius2));
        },
    		
        testConversionFtoC: function () {
            Y.Assert.areEqual(this.celsius1,
    convertFromFahrenheitToCelsius(this.fahrenheit1));
    			
            Y.Assert.areEqual(this.celsius2, 
    convertFromFahrenheitToCelsius(this.fahrenheit2));
        }
    }));
    

      您可能注意到,在清單 13 中:

      可使用 setUp() 方法。YUI Test 在測試用例和測試套件層提供了 setUp() 和 tearDown() 方法。

      測試方法名以 test 單詞開頭,它們包含斷言。

      本示例使用 Y.Assert.areEqual() 斷言類型,它與 QUnit 中的 equal() 函數類似。

      YUI Test 為斷言提供了多種方法,如:

      Y.Assert.areSame(),它類似于 QUnit 中的 strictEqual()。

      數據類型斷言(Y.Assert.isArray()、Y.Assert.isBoolean()、Y.Assert.isNumber() 等等)。

      特殊值斷言(Y.Assert.isFalse()、Y.Assert.isNaN()、Y.Assert.isNull() 等等)。

      要啟動 YUI 中的測試,需要使用 Y.Test.Runner 對象。還需要將套件或測試用例添加到對象中,然后調用 run() 方法來運行測試。清單 14 顯示了如何運行 清單 13 中創建的測試。

      清單 14. 運行 YUI test

    				
    Y.Test.Runner.add(suite);
    Y.Test.Runner.run();
    

      在默認情況下,結果會打印在瀏覽器的控制臺中(如果瀏覽器支持控制臺的話)。更好的方法是使用 Yahoo! Console 組件來打印結果。如果要使用 Yahoo! Console 組件,需要采用 Y.Console 構造函數將控制臺綁定到 HTML 運行程序的 DOM 元素中,如清單 15 所示。

      清單 15. Yahoo! Console

    				
    var console = new Y.Console({
        verbose: true,
        newestOnTop: false,
        width:"600px"
    });
    
    console.render('#testLogger');
    

    原文轉自: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>