JavaScript的單元測試工具(4)

發表于:2014-10-27來源:uml.org.cn作者:Elaine.Ye點擊數: 標簽:JavaScript
你可能已經注意到了在清單13中: 1. setUp()方法是可用的。YUI在測試用例和測試套件層面都提供了setUp()和tearDown()方法。 2. 測試方法的名稱以test這一詞作為

你可能已經注意到了在清單13中:

1. setUp()方法是可用的。YUI在測試用例和測試套件層面都提供了setUp()和tearDown()方法。

2. 測試方法的名稱以test這一詞作為開始,他們包含有斷言。

3. 該例子使用的是Y.Assert.areEqual()這一斷言類型,其類似于QUnit中的equal()函數。

4. YUI Test提供了多種多樣的斷言方法,比如說:

4.1. Y.Assert.areSame(),該斷言相當于QUnit中的strictEqual()。

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

4.3. 特殊值的斷言(Y.Assert.isFalse(), Y.Assert.isNaN(), Y.Assert.isNull()等)。

若要發起YUI中的測試,使用Y.Test.Runner對象。你需要把套件或是測試用例添加到這一對象中,然后調用run()方法來運行測試。清單14展示了如何運行清單13中創建的測試。

清單14. 運行YUI測試

  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'); 

清單15說明了如何使用幾個參數來配置控制臺,該控制臺會在一個其id等于testLogger的DOM元素內部進行渲染。

HTML運行器需要更新,添加控制臺所引用的DOM元素,如清單16所示。

清單16. HTML運行器更新為支持Yahoo! Console

  <body class="yui3-skin-sam"> 
  <div id="testLogger">< /div>   
  </body> 

該例子設置< body>的class,class的名稱為yui3-skin-sam,該class負責定義控制臺的皮膚。

圖3顯示的是運行測試之后的控制臺

圖3. YUI Test的結果

JSTestDriver帶來的輕松測試

使用功能強大的JSTestDriver(JSTD)工具,你可以通過命令行來在多種瀏覽器中運行JavaScript。與JSTD一起發布的有一個JAR 文件,該文件讓你啟動服務器,捕獲一個或多個瀏覽器,以及在瀏覽器中運行測試。你不需要像前面討論的那兩個框架那樣,用到HTML運行器,不過要用到一個配置文件。清單17給出了一個配置文件。

清單17. 配置文件(jsTestDriver.conf)

  server: http://localhost:4224  
  load:  
  - js/src/*.js  
  test:  
  - js/test/*.js  

該配置文件是使用YAML編寫的,該語言為配置文件提供了一種很好的格式。配置文件包含了一些信息:要啟動的服務器,源代碼和測試文件所在位置等。

若要使用JSTD執行測試:

1. 啟動測試服務器。通過命令行,進入到存放jsTestDriver.jar的文件夾,然后運行下面的命令:

1.java -jar JsTestDriver-1.3.3d.jar -port 4224

清單17中指定的端口應該和配置文件中指定的是一樣的。默認情況下,JSTD會在JAR文件駐留的同一目錄下查找jsTestDriver.conf文件。

2. 復制和粘貼http://localhost:4224/capture這一URL到用于測試的瀏覽器中,以此來在服務器中注冊一個或多個瀏覽器。

測試你在前面例子中使用的同一源代碼(清單5),不過這次使用的是JSTD語法。清單18展示了如何轉換清單10中的QUnit測試用例和清單14(譯者注:參照上下文,疑為清單13)中的YUI Test測試用例。

原文轉自:http://www.uml.org.cn/Test/201301152.asp

...
国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97